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

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

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

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

linq:通過鍵對GroupByToLookup

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

>讓我們用

類說明:Person>

class Person
{
    public int PersonID { get; set; }
    public string Car { get; set; }
}
登入後複製
考慮一個

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

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

var results = persons.GroupBy(p => p.PersonID, p => p.Car);
登入後複製

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

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>):>

然後,訪問數據更簡單:
var carsByPersonID = persons.ToLookup(p => p.PersonID, p => p.Car);
登入後複製

>

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板