刚接触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方法来实现:
C# code
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();