foreach(varList in peopleList.Where(person => person.FirstName ==“Messi”)) { selectPeople.Add(人); }
我只是想知道是否有任何方法可以使用LINQ来简化它。
喜欢而不是看所有人,我试图使用LINQ来填充“Messi”的列表...正在尝试类似......
var selectPeople = peopleList.Select(x=>x.FirstName=="Messi");
然后我可以在没有检查的情况下添加该列表中的所有人。但它并没有按计划进行。
也许简化那个表达没有意义。但这个问题似乎值得加强我的LINQ知识。
答案 0 :(得分:5)
你很亲密。在不知情的情况下完成了。
var selectPeople = peopleList.Where(x=>x.FirstName == "Messi");
这将创建一个IEnumerable<X>
,其中X是peopleList中的任何类型。
查询表达式语法为
var selectPeople = from person in peopleList
where person.FirstName == "Messi"
select person;
为了得到具体的List格式,我相信你已经发现了.ToList()扩展名。
答案 1 :(得分:1)
peopleList是什么类型的?我相信它必须是IEnumerable的一种类型才能使LINQ工作。
var selectPeople = peopleList.AsEnumerable().Select(x=>x.FirstName=="Messi");
由于列表中的List<X>
类型调用AsEnumerable()
并且在您的选择上有效,它应该有用。
答案 2 :(得分:1)
var selectPeople = new List<Person>(peopleList.Where(x=>x.FirstName=="Messi"));
或者如果您已经有一个清单:
selectPeople.AddRange(peopleList.Where(x=>x.FirstName=="Messi"));