代码之家  ›  专栏  ›  技术社区  ›  Henk

将列表<Base>与列表<Derived>组合

c#
  •  4
  • Henk  · 技术社区  · 17 年前

    public class BaseItem
    {
        public string Title { get; set; }
    }
    
    public class DerivedItem : BaseItem
    {
        public string Description { get; set; }
    }
    
    class Program
    {
        static void Main(string[] args)
        {
            List<BaseItem> baseList = new List<BaseItem>();
            List<DerivedItem> derivedList = new List<DerivedItem>();
            baseList.Add(new BaseItem() { Title = "tester"});
            derivedList.Add(new DerivedItem() { Title = "derivedTester", Description = "The Description" });
    
            baseList.AddRange(derivedList);
        }
    }
    

    亨克

    2 回复  |  直到 17 年前
        1
  •  12
  •   Marc Gravell    17 年前

    在C#3.0中。净3.5, IEnumerable<T>

    baseList.AddRange(derivedList.Cast<BaseItem>());
    

    (请注意,您需要“ using System.Linq;

    在那之前。..可能最简单的方法就是循环:

    foreach(BaseItem item in derivedList) {baseList.Add(item);}
    
        2
  •  1
  •   lasseeskildsen    17 年前

    假设你使用的是.net 3.5,试着像这样添加derivedList中的项目:

    baseList.AddRange(derivedList.Cast<BaseItem>());