我为我的用户创建了一个message
类:
public class Message
{
[DisplayName("Message")]
public string shortContent { get; set; }
[DisplayName("Line")]
public int line { get; set; }
[DisplayName("File Name")]
public string file { get; set; }
[DisplayName("Level")]
public MessageLevel level { get; set; }
...
}
public enum MessageLevel
{
Information,
Warning,
Error
}
为了显示给我喜欢的用户,我将它绑定到一个自定义绑定列表(为了允许他们对消息进行排序)。
我希望能够根据某些属性(level
, shortContent
本质上)对消息进行分组,但我找不到任何简单的方法来使用Linq
。
我试过使用GroupBy,但运气不好。我想要做的是转换这个:
Message Line File Name Level Date Read Full message
The device is not ready. 46 OpenFileControl.cs Error 24/09/2015 3:01 True
The device is not ready. 46 OpenFileControl.cs Error 24/09/2015 3:02 True
Some Random message. -1 Unkown Error
:
Message Count
The device is not ready. 2
Some Random message. 1
使用GroupBy应该可以工作。记住你是而不是修改你的绑定列表,所以任何绑定到它的东西都不会注意到你正在分组。
list.GroupBy(x => x.Message)
.Select(x => new { Message = x.Key, Count = x.Count() })