在C#中,使用LINQ和Lambda表達式可以輕松地對數據進行分組統計。以下是一個示例,說明如何使用LINQ和Lambda表達式對一個列表進行分組統計。
首先,我們需要一個數據類型。假設我們有一個Person
類:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
接下來,我們創建一個包含Person
對象的列表:
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Charlie", Age = 25 },
new Person { Name = "David", Age = 30 },
new Person { Name = "Eve", Age = 28 }
};
現在,我們將使用LINQ和Lambda表達式對這個列表進行分組統計,按照年齡進行分組:
var ageGroups = people.GroupBy(p => p.Age)
.Select(g => new
{
Age = g.Key,
Count = g.Count()
})
.ToList();
這段代碼首先使用GroupBy
方法按照Age
屬性對people
列表進行分組。然后,使用Select
方法將每個分組轉換為一個新的匿名類型,其中包含分組的鍵(年齡)和該分組的元素數量(計數)。最后,使用ToList
方法將結果轉換為一個列表。
現在,ageGroups
列表將包含按年齡分組的統計信息:
foreach (var group in ageGroups)
{
Console.WriteLine($"Age: {group.Age}, Count: {group.Count}");
}
輸出:
Age: 25, Count: 2
Age: 30, Count: 2
Age: 28, Count: 1
這就是如何使用C#中的LINQ和Lambda表達式進行分組統計的方法。