在C#中,GroupBy
操作通常用于對集合中的數據進行分組。這個操作可以應用于多種數據類型,包括集合類型(如IEnumerable<T>
)和數組類型。然而,需要注意的是,GroupBy
操作的結果是一個包含IGrouping<TKey, TElement>
的IEnumerable<IGrouping<TKey, TElement>>
。
這里是一些關于GroupBy
操作數據類型要求的要點:
GroupBy
可以應用于實現了IEnumerable<T>
接口的任何類型的集合,包括自定義集合類、數組、列表等。GroupBy
操作需要一個鍵選擇器函數,該函數確定每個元素的鍵。這個鍵選擇器函數可以返回任何類型,只要它與你的查詢邏輯和后續操作兼容。通常,鍵類型應該是可比較的,以便可以對元素進行排序或分組。GroupBy
操作的元素類型是可選的。如果你不提供元素類型,GroupBy
將使用元素的隱式類型。如果你提供了元素類型,那么查詢結果將包含這個類型的元素。GroupBy
操作的結果是一個包含IGrouping<TKey, TElement>
的IEnumerable<IGrouping<TKey, TElement>>
。你可以遍歷這個結果集來訪問每個分組及其對應的元素。下面是一個簡單的示例,演示了如何在C#中使用GroupBy
操作:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
// 創建一個整數列表
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// 使用GroupBy操作按奇偶性分組
var groupedNumbers = numbers.GroupBy(n => n % 2);
// 遍歷分組并輸出結果
foreach (var group in groupedNumbers)
{
Console.WriteLine($"Group: {group.Key}");
foreach (var number in group)
{
Console.WriteLine($" Number: {number}");
}
}
}
}
在這個示例中,我們創建了一個整數列表,并使用GroupBy
操作按奇偶性對數字進行分組。然后,我們遍歷分組并輸出每個分組及其對應的數字。