刚接触linq,求教,如何返回对象类型的泛型集合List<Message>
RT:
我的问题是:
现有一泛型集合List<Message> list,
Message 是一个实体类,里面包含ID,Content等字段
能不能直接用linq去除list集合中Content内容重复的对象,
我的意思是如何不用转换list为string[] 类型的基础上筛选,即直接筛选list集合
返回的也是List<Message> 类型,而不是var
谢谢各位了,在线等
[解决办法]
List<Message> result = list.GroupBy(x => x.Content).Select(x => x.Key).ToList();
[解决办法]
List<Message> result = list.GroupBy(x => x.Content).Select(x => x.First()).ToList();
[解决办法]
老曹的GroupBy是一种解决方案,还有另外一种,可以重载Distinct方法来实现:
public class MessageComparer : IEqualityComparer<Message> { public bool Equals(Message t1, Message t2) { return ( t1.Content== t2.Content); } public int GetHashCode(Message t) { return t.ToString().GetHashCode(); } } //调用:List<Message> list,list=list.Distinct(new MessageComparer ()).ToList();