用LINQ简化 - 基本选择

时间:2010-03-31 00:51:12

标签: c# linq list

foreach(varList in peopleList.Where(person => person.FirstName ==“Messi”))     {             selectPeople.Add(人);     }

我只是想知道是否有任何方法可以使用LINQ来简化它。

喜欢而不是看所有人,我试图使用LINQ来填充“Messi”的列表...正在尝试类似......

var selectPeople = peopleList.Select(x=>x.FirstName=="Messi");

然后我可以在没有检查的情况下添加该列表中的所有人。但它并没有按计划进行。

也许简化那个表达没有意义。但这个问题似乎值得加强我的LINQ知识。

3 个答案:

答案 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"));