C# linq group by
时间: 2023-08-24 15:04:41 浏览: 31
在C#中使用LINQ进行分组(group by)操作有多种方式。引用和引用展示了两种常见的方法。
第一种方法是使用LINQ查询表达式。在查询表达式中,我们可以使用`group by`子句来指定要分组的属性,然后使用`into`子句将结果存储在一个临时变量中。下面是一个示例:
```csharp
var results = from p in persons
group p.car by p.PersonId into g
select new { PersonId = g.Key, Cars = g.ToList() };
```
在这个示例中,我们将`persons`集合按照`PersonId`属性进行分组,并将每个分组的`car`属性收集到一个列表中。结果将包含每个分组的`PersonId`和对应的`Cars`列表。
第二种方法是使用LINQ的函数形式。在函数形式中,我们可以使用`GroupBy`方法,该方法接受三个参数:分组的属性、分组的元素和一个选择器函数。此外,我们还需要使用`ToList`方法将结果转换为列表。下面是一个示例:
```csharp
var results = persons.GroupBy(p => p.PersonId, p => p.car, (key, g) => new { PersonId = key, Cars = g.ToList() });
```
这个示例与前面的查询表达式示例的功能相同。我们通过`PersonId`属性进行分组,将每个分组的`car`属性收集到一个列表中,并创建一个包含`PersonId`和`Cars`属性的匿名对象。
总而言之,以上就是在C#中使用LINQ进行分组操作的两种常见方法。您可以根据个人喜好和项目需求选择适合的方法。引用提供了更多关于C#中使用LINQ的`GroupBy`操作的详细信息和示例,供您进一步了解和学习。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [C#Linq中的GroupBy](https://blog.csdn.net/q__y__L/article/details/125997669)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [C#在LINQ中使用GroupBy](https://download.csdn.net/download/weixin_38610717/12721697)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
相关推荐

















