说,我的Dog课上还有另一个课,跳蚤。
class Dog
{
public Flea flea;
}
现在,如果我有一个狗列表:List<Dogs> manyDogs
如何将该列表转换为List<Flea> fleaInEachDogs
?
目前我会这样做:
List<Flea> fleaInEachDogs = new List<Flea>();
foreach(Dog d in manyDogs)
{
fleaInEachDogs.Add(d.flea);
}
但我认为所有List
类都可以使用更方便的聚合方法。有没有?
答案 0 :(得分:8)
你可以使用LINQ的Select
扩展来更加简洁,虽然没有像“pluck”方法那样按名称获取属性(因为这需要反射):
var fleaInEachDogs = manyDogs.Select(dog => dog.flea);
(在ToList()
上使用IEnumerable
获取与原始代码完全相同的列表。)