foreach(var person in peopleList.Where(person => person.FirstName ==“Messi”)) { selectPeople.Add(person); }用LINQ隐藏 - 基本选择
我只是想知道是否有任何方法来简化这个使用LINQ。
像,而不是考虑所有我试图使用LINQ只需填写清单的“梅西”的人...试图像...
var selectPeople = peopleList.Select(x=>x.FirstName=="Messi");
然后我可以在没有检查的情况下添加列表中的每个人。但它没有按计划运作。
也许没有必要简化表达式。但这个问题似乎值得加强我的LINQ知识。
我现在已经得到了'VAR selectPeople = peopleList.Where(人=> person.Name == “梅西”)ToList() ;'所以我想这个问题真的是关于如何使用Select和SelectMany – baron 2010-03-31 00:55:30
'SelectMany'用于每个项目可以返回多个结果并且想要将它们组合成单个结果集。例如。 'IEnumerable allChildren = person.SelectMany(person => person.GetChildren());'你不需要用你的例子。 –
2010-03-31 01:05:24
此外,当您使用lambdas扩展方法而不是查询表达式时,“Select”常常是多余的。但是如果你想将对象投影到别的东西上,使用'Select'。例如,当FirstName等于“Messi”时,如果你只想要一个LastNames列表,你可以像'peopleList.Where(p => p.FirstName ==“Messi”)那样做。Select(p => p.LastName) ;',这应该导致一个'IEnumerable'代表符合给定条件的所有人的姓氏。 –
2010-03-31 01:08:27