在C#中,我們可以使用LINQ(Language Integrated Query)查詢來實現對集合的分組(group)操作以及聚合函數(如Sum、Average、Min、Max等)的結合使用
首先,假設我們有一個Person
類,如下所示:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
接下來,我們創建一個List<Person>
來存儲一些示例數據:
var people = new List<Person>
{
new Person { Id = 1, Name = "Alice", Age = 30 },
new Person { Id = 2, Name = "Bob", Age = 25 },
new Person { Id = 3, Name = "Charlie", Age = 35 },
new Person { Id = 4, Name = "David", Age = 28 },
new Person { Id = 5, Name = "Eva", Age = 32 },
};
現在,我們想要根據年齡對這些人進行分組,并計算每個年齡組的總年齡。我們可以使用LINQ查詢和聚合函數結合GroupBy
方法來實現這個需求:
var ageGroupResult = people
.GroupBy(p => p.Age)
.Select(g => new
{
AgeGroup = g.Key,
TotalAge = g.Sum(p => p.Age)
})
.ToList();
在這個查詢中,我們首先使用GroupBy
方法根據年齡對people
列表進行分組。然后,我們使用Select
方法來選擇每個年齡組及其總年齡(使用Sum
聚合函數計算)。最后,我們將結果轉換為一個新的匿名類型列表并輸出。
運行這段代碼,你將得到以下輸出:
AgeGroup = 25, TotalAge = 28
AgeGroup = 28, TotalAge = 28
AgeGroup = 30, TotalAge = 30
AgeGroup = 32, TotalAge = 32
AgeGroup = 35, TotalAge = 35
這樣,我們就實現了C#中分組操作與聚合函數的結合使用。