返回由 Child's One 的联合创建的基本集合
本文关键字:创建 集合 One Child 返回 | 更新日期: 2023-09-27 18:09:55
我正在尝试根据孩子的总和检索父 obj 的集合。前任:3 类
Animal,
Dog:Animal,
Cat:Animal
让我们尝试用一些代码来解释:
Class something{
public List <Dog> DogList{get; set;};
public List <Cat> CatList{get; set;};
Public List <Animal> getAnimals{
get{ return DogList+CatList; }
}
}
getAnimals
应该返回 2 个子列表的总和
Public List <Animal> getAnimals{
get{
List<Animal> AnimalList = new List<Animal>();
foreach (Animal child in DogList)
AnimalList.add(child);
foreach(Animal child in CatList)
AnimalList.add(child);
return AnimalList;
}
}
有人可以帮助我吗?
希望这就是你要找的:
public List<Animal> getAnimals()
{
return DogList.Concat<Animal>(CatList)
.ToList();
}
或者如果您想返回独特的猫和独特的狗:
public List<Animal> getAnimals()
{
return DogList.Union<Animal>(CatList)
.ToList();
}
我想你可能是指这种方法,[Enumerable.Concat<T>
][1]。它是任何IEnumerable<T>
上的扩展方法,List<T>
是,它允许您获取两个集合,并生成一个新的IEnumerable<T>
,该将"包含"两个原始集合的内容。
请注意,Concat
不是复制值的集合,它将是您只能枚举的集合(如 foreach
(,当您这样做时,它将枚举两个原始集合并生成所有元素。
public List<Animal> getAnimals()
{
return DogList.OfType<Animal>().Concat(CatList).ToList()
}