在C#中,GroupBy
方法用于將集合中的元素按照指定的鍵進行分組。它返回一個包含分組后的結果的IEnumerable<IGrouping<TKey, TElement>>
對象,其中TKey
是分組的鍵的類型,TElement
是集合中元素的類型。
GroupBy
方法有多個重載形式,最常用的形式接受一個Func<TSource, TKey>
參數,該參數定義了用于分組的鍵的選擇器函數。例如,以下示例將一個字符串集合按照字符串的長度進行分組:
List<string> strings = new List<string> { "apple", "banana", "orange", "pear", "grape" };
var groups = strings.GroupBy(s => s.Length);
foreach (var group in groups)
{
Console.WriteLine($"Group key: {group.Key}");
foreach (var element in group)
{
Console.WriteLine($"Element: {element}");
}
Console.WriteLine();
}
輸出:
Group key: 5
Element: apple
Element: grape
Group key: 6
Element: banana
Group key: 6
Element: orange
Group key: 4
Element: pear
在上面的示例中,strings.GroupBy(s => s.Length)
將字符串集合按照字符串的長度進行分組,并返回一個包含4個分組的IEnumerable<IGrouping<int, string>>
對象。每個分組都有一個鍵(字符串的長度),可以通過group.Key
訪問。每個分組都是一個可迭代的集合,可以通過group
訪問。