c#linq groupby数量大于1
时间: 2023-07-31 09:09:07 浏览: 251
如果您想使用 LINQ 中的 GroupBy 方法将集合中的元素分组,并只选择那些在分组中具有两个或更多元素的组,则可以使用以下代码示例:
```csharp
var result = myList.GroupBy(x => x.SomeProperty)
.Where(g => g.Count() > 1)
.ToList();
```
在此示例中,我们首先使用 `GroupBy` 方法将集合中的元素按 `SomeProperty` 属性值进行分组。然后,我们使用 `Where` 方法筛选出仅包含两个或更多元素的组。最后,我们将结果转换为列表并存储在 `result` 变量中。
相关问题
c# linq group by 计数
C#中的LINQ(Group By)可以用于对集合进行分组,然后对每个组进行聚合操作,例如计数。下面是一个示例代码:
```
List<aa> a = new List<aa>();
a.Add(new aa(1, 1,18));
a.Add(new aa(1, 2,15));
a.Add(new aa(1, 3,44));
a.Add(new aa(2, 1,88));
a.Add(new aa(2, 2,60));a.Add(new aa(2, 3,70));
var query = from saa in a
group saa by saa.cmd into g
select new { g.Key, age30 = g.Where(y => y.age > 30).Count() };
foreach (var item in query)
{
Console.WriteLine("公司:" + item.Key);
Console.WriteLine("age30+:" + item.age30);
Console.WriteLine("-------");
}
```
在上面的代码中,我们首先定义了一个List<aa>类型的集合a,然后使用LINQ的Group By操作符对其进行分组,按照cmd属性进行分组。接着,我们使用Where操作符筛选出age大于30的元素,并使用Count()方法计算符合条件的元素个数。最后,我们使用匿名类型将结果进行封装,输出每个组的Key和符合条件的元素个数。
阅读全文