如何使用linq查询LIST

假设我将人类实例添加到列表然后我需要使用linq查询列表。

List lst=new List(); lst.add(new person{ID=1,Name="jhon",salaty=2500}); lst.add(new person{ID=2,Name="Sena",salaty=1500}); lst.add(new person{ID=3,Name="Max",salaty=5500}); lst.add(new person{ID=4,Name="Gen",salaty=3500}); 

现在我想用linq查询上面的列表。 请指导我的示例代码。

我还建议使用LinqPad作为一种方便的方法来解决Linq对于高级和初学者的问题。

例:
在此处输入图像描述

好吧,你给出的代码开头无效 – List是generics类型,它有一个Add方法而不是add等。

但你可以这样做:

 List list = new List { new person{ID=1,Name="jhon",salaty=2500}, new person{ID=2,Name="Sena",salaty=1500}, new person{ID=3,Name="Max",salaty=5500}. new person{ID=4,Name="Gen",salaty=3500} }; // The "Where" LINQ operator filters a sequence var highEarners = list.Where(p => p.salaty > 3000); foreach (var person in highEarners) { Console.WriteLine(person.Name); } 

如果您想了解所有LINQ运算符的详细信息,以及如何在LINQ to Objects中实现它们,您可能会对我的Edulinq博客系列感兴趣。

 var persons = new List { new Person {ID = 1, Name = "jhon", Salary = 2500}, new Person {ID = 2, Name = "Sena", Salary = 1500}, new Person {ID = 3, Name = "Max", Salary = 5500}, new Person {ID = 4, Name = "Gen", Salary = 3500} }; var acertainperson = persons.Where(p => p.Name == "jhon").First(); Console.WriteLine("{0}: {1} points", acertainperson.Name, acertainperson.Salary); jhon: 2500 points var doingprettywell = persons.Where(p => p.Salary > 2000); foreach (var person in doingprettywell) { Console.WriteLine("{0}: {1} points", person.Name, person.Salary); } jhon: 2500 points Max: 5500 points Gen: 3500 points var astupidcalc = from p in persons where p.ID > 2 select new { Name = p.Name, Bobos = p.Salary*p.ID, Bobotype = "bobos" }; foreach (var person in astupidcalc) { Console.WriteLine("{0}: {1} {2}", person.Name, person.Bobos, person.Bobotype); } Max: 16500 bobos Gen: 14000 bobos 

由于您没有给出任何您想要的指示,因此这里有一个链接到101个使用所有不同LINQ方法的LINQ样本 : 101 LINQ Samples

此外,您真的应该真正将List更改为强类型列表( List ),并正确定义T,并将T的实例添加到列表中。 它将真正使查询更容易,因为您不必一直抛出所有内容。