c# linq 分组汇总
时间: 2023-07-27 11:23:21 浏览: 231
你可以使用 C# 的 LINQ 中的 `group by` 子句来进行分组汇总。下面是一个示例代码:
```csharp
var data = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var query = from d in data
group d by d % 2 into g
select new
{
GroupKey = g.Key,
Sum = g.Sum(),
Count = g.Count(),
Average = g.Average()
};
foreach (var result in query)
{
Console.WriteLine($"Group Key: {result.GroupKey}, Sum: {result.Sum}, Count: {result.Count}, Average: {result.Average}");
}
```
在上面的示例中,我们首先创建了一个包含数字的列表,然后使用 `group by` 子句将这些数字按照它们是否为偶数进行分组。然后,我们使用 `select` 子句来汇总每个组的数据,包括组的键、总和、计数和平均值。最后,我们使用 `foreach` 循环来遍历结果并将其输出到控制台上。
相关问题
C#LINQ汇总数据
在C#中使用LINQ进行数据汇总可以使用GroupBy和Select操作符。首先,使用GroupBy操作符按照指定的属性对数据进行分组。然后,使用Select操作符选择需要的属性并进行汇总计算。例如,给定一个名为orderlist的订单列表,我们可以使用以下代码来汇总数据:
var resultlist = orderlist.GroupBy(oo => new { oo.Deptname, oo.Userid, oo.Username })
.Select(ss => new OBreakfirstModel { Number = number++, Deptname = ss.Key.Deptname, Userid = ss.Key.Userid, Username = ss.Key.Username, Ototalamount = ss.Sum(s => s.Ototalamount), Ocount = ss.Sum(s => s.Ocount) });
在上述代码中,我们首先使用GroupBy操作符按照Deptname、Userid和Username属性对订单列表进行分组。然后,使用Select操作符创建一个新的OBreakfirstModel对象,其中包含分组的属性以及对Ototalamount和Ocount属性进行求和的结果。最后,将结果存储在resultlist变量中。
请注意,上述代码中的number变量是用于给每个分组的结果赋予一个序号的辅助变量,您可以根据需要进行调整。
\[1\]
#### 引用[.reference_title]
- *1* [C# Linq 查询汇总](https://blog.csdn.net/lwf3115841/article/details/127641740)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [C#中Linq用法汇集](https://blog.csdn.net/kalvin_y_liu/article/details/125506763)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
c# List对象 分组汇总
你可以使用 LINQ 的 `GroupBy` 方法来对 C# 中的 `List` 对象进行分组汇总。下面是一个示例代码:
```csharp
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Gender { get; set; }
}
var people = new List<Person>
{
new Person { Name = "Alice", Age = 25, Gender = "Female" },
new Person { Name = "Bob", Age = 30, Gender = "Male" },
new Person { Name = "Charlie", Age = 35, Gender = "Male" },
new Person { Name = "Dave", Age = 40, Gender = "Male" },
new Person { Name = "Eve", Age = 45, Gender = "Female" },
new Person { Name = "Frank", Age = 50, Gender = "Male" }
};
var query = from p in people
group p by p.Gender into g
select new
{
Gender = g.Key,
Count = g.Count(),
AverageAge = g.Average(p => p.Age),
MaxAge = g.Max(p => p.Age),
MinAge = g.Min(p => p.Age)
};
foreach (var result in query)
{
Console.WriteLine($"Gender: {result.Gender}, Count: {result.Count}, Average Age: {result.AverageAge}, Max Age: {result.MaxAge}, Min Age: {result.MinAge}");
}
```
在上面的示例中,我们首先创建了一个包含 `Person` 对象的列表。然后,我们使用 `GroupBy` 方法按照性别对这些人进行分组。然后,我们使用 `select` 子句来汇总每个组的数据,包括性别、计数、平均年龄、最大年龄和最小年龄。最后,我们使用 `foreach` 循环来遍历结果并将其输出到控制台上。
阅读全文