Linq查询以按具有计数的字段分组
本文关键字:字段 查询 Linq | 更新日期: 2023-09-27 18:21:13
所以我一直在尝试让这个linq查询正确查询,但它只是按记录计数,而不是重复条目。
var groupedList = from x in WarningList
group WarningList by new {etlTraceMessage.Message}
into grouped
select new {grouped.Key.Message, Count = grouped.Count()};
我想得到一个结果集,比如。。。
15 - Missing ID
4 - Invalid use of term
1 - Package missing
但它只查询记录的数量,而不是每种类型的记录数量等。
20 - Missing ID
Warninglist只是一个具有几个属性的可观察集合类
感谢
我不确定WarningList
的类是什么,但让我假设它有一个Message
属性,并且您希望根据这个属性对列表进行分组:
public class Warn
{
public string Message {get; set;}
//other properties
}
如果是这样的话,你可以很容易地将你的列表分组如下:
var groupedList = WarningList
.GroupBy(x => x.Message)
.Select(g => new {Key = g.Key, Count = g.Count()});
或者如果你想要另一个sintax:
var groupedList = from x in WarningList
group x by x.Message into grouped
select new { Key = grouped.Key, Count = grouped.Count()};
在您的方法中,您尝试通过复合键进行分组(这是不必要的),但使用了一些不同的局部变量——未链接到查询(etlTraceMessage.Message
)。但如果你以后需要它:
var groupedList = from x in WarningList
group x by new { x.Message } into grouped
select new { Key = grouped.Key.Message, Count = grouped.Count()};
以防万一,msdn有很多例子。