[英]how to query LIST using linq
假設如果我將人員 class 實例添加到列表,然后我需要使用 linq 查詢列表。
List lst=new List();
lst.add(new person{ID=1,Name="jhon",salary=2500});
lst.add(new person{ID=2,Name="Sena",salary=1500});
lst.add(new person{ID=3,Name="Max",salary=5500});
lst.add(new person{ID=4,Name="Gen",salary=3500});
現在我想用 linq 查詢上面的列表。 請用示例代碼指導我。
我還建議LinqPad作為使用 Linq 解決高級和初學者的便捷方式。
例子:
好吧,您給出的代碼一開始是無效的 - List
是一個泛型類型,它有一個Add
方法而不是add
等。
但是您可以執行以下操作:
List<Person> list = new List<Person>
{
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}
};
// The "Where" LINQ operator filters a sequence
var highEarners = list.Where(p => p.salary > 3000);
foreach (var person in highEarners)
{
Console.WriteLine(person.Name);
}
如果您想詳細了解所有 LINQ 運算符的功能,以及它們如何在 LINQ 中實現到 Objects,您可能會對我的Edulinq 博客系列感興趣。
由於您沒有給出任何您想要的指示,這里是 101 個 LINQ 示例的鏈接,這些示例使用所有不同的 LINQ 方法: 101 Z979E08FD891EBB5526A70C82D741A 示例
此外,您真的應該真正將您的List
更改為強類型列表 ( List<T>
),正確定義 T,並將 T 的實例添加到您的列表中。 它確實會使查詢變得更加容易,因為您不必一直投射所有內容。
var persons = new List<Person>
{
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.