簡體   English   中英

如何使用 linq 查詢 LIST

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM