可能是重复问题:
Linq Distinct() 如何使用委托作为相等比较器
我需要通过ID获取唯一的PostViewModel。如何使用lambda表达式实现这个功能?
public IEnumerable<PostViewModel> DistinctPosts
{
get
{
return Employees
.SelectMany(e => e.PostList.Posts)
.Distinct(new PostViewModelComparer())
.ToList();
}
}
比较器:
class PostViewModelComparer : IEqualityComparer<PostViewModel>
{
#region IEqualityComparer<Contact> Members
public bool Equals(PostViewModel x, PostViewModel y)
{
return x.ID.Equals(y.ID);
}
public int GetHashCode(PostViewModel obj)
{
return obj.ID.GetHashCode();
}
#endregion
}
很抱歉,这是从使用代理来进行LINQ Distinct()中的相等比较重复的内容。