首頁 > 後端開發 > C++ > 如何使用LINQ的GroupBy和Tolookup方法通過特定鍵進行分組數據?

如何使用LINQ的GroupBy和Tolookup方法通過特定鍵進行分組數據?

Linda Hamilton
發布: 2025-02-02 00:11:09
原創
996 人瀏覽過

How Can I Group Data by a Specific Key Using LINQ's GroupBy and ToLookup Methods?

linq:通過鍵對GroupByToLookup

進行分組數據 LINQ提供了基於特定標準分組數據的有效方法。 當處理對象的集合併需要基於公共密鑰匯總信息時,這特別有用。

>讓我們用

類說明:Person>

1

2

3

4

5

class Person

{

    public int PersonID { get; set; }

    public string Car { get; set; }

}

登入後複製
考慮一個

>對象的列表,其中有些人可能有多個條目(例如,擁有多輛車):Person

1

2

3

4

5

6

List<Person> persons = new List<Person>()

{

    new Person { PersonID = 1, Car = "Ferrari" },

    new Person { PersonID = 1, Car = "BMW" },

    new Person { PersonID = 2, Car = "Audi" }

};

登入後複製
>通過

對這些人進行分組並列出他們的汽車,我們使用linq的PersonID方法:GroupBy

1

var results = persons.GroupBy(p => p.PersonID, p => p.Car);

登入後複製

是一個results。每個IEnumerable<IGrouping<int, string>>代表一個具有共同IGrouping(通過PersonID訪問)的組,並包含一系列汽車字符串(result.Key)。 訪問此數據:result

1

2

3

4

5

6

foreach (var result in results)

{

    int personID = result.Key;

    List<string> cars = result.ToList(); // Convert to List for easier access

    Console.WriteLine($"Person ID: {personID}, Cars: {string.Join(", ", cars)}");

}

登入後複製
另外,

ToLookup創建一個字典的結構(ILookup<int, string>):>

然後,訪問數據更簡單:

1

var carsByPersonID = persons.ToLookup(p => p.PersonID, p => p.Car);

登入後複製

>

1

2

List<string> carsForPerson1 = carsByPersonID[1].ToList();

Console.WriteLine($"Cars for Person 1: {string.Join(", ", carsForPerson1)}");

登入後複製
提供有效的方法來根據鍵進行分組數據,從而使LINQ中的數據操作更加精簡。

提供直接字典式訪問,而GroupBy>為複雜的分組方案提供了更大的靈活性。 ToLookup

以上是如何使用LINQ的GroupBy和Tolookup方法通過特定鍵進行分組數據?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板