溫馨提示×

c# groupby的原理與實現(xiàn)方式是什么

c#
小樊
99
2024-08-10 03:40:36
欄目: 編程語言

GroupBy是LINQ中用于對集合進行分組的方法,可以根據(jù)指定的鍵對集合中的元素進行分組。在C#中,GroupBy方法通過實現(xiàn)IEnumerable接口的GetEnumerator()方法來實現(xiàn)分組功能。

GroupBy方法的原理是根據(jù)指定的鍵對集合中的元素進行分組,然后返回一個包含分組后的元素的序列。在實現(xiàn)中,GroupBy方法會遍歷集合中的每個元素,根據(jù)指定的鍵值,將元素分組,并將分組后的元素保存在一個新的集合中。

實現(xiàn)GroupBy方法時,需要先定義一個用于保存分組后元素的數(shù)據(jù)結(jié)構(gòu),通常是字典或者哈希表。然后遍歷集合中的每個元素,根據(jù)指定的鍵值將元素分組并保存到數(shù)據(jù)結(jié)構(gòu)中。最后返回一個包含分組后元素的序列。

示例代碼如下所示:

var numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

var groupedNumbers = numbers.GroupBy(num => num % 2);

foreach (var group in groupedNumbers)
{
    Console.WriteLine("Key: " + group.Key);
    foreach (var num in group)
    {
        Console.WriteLine(num);
    }
}

在上面的示例中,通過GroupBy方法將numbers集合中的元素根據(jù)奇偶性進行分組,最終輸出結(jié)果為:

Key: 1
1
3
5
7
9

Key: 0
2
4
6
8
10

0