c# – Distinct()不起作用

前端之家收集整理的这篇文章主要介绍了c# – Distinct()不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下 linq表达式:
AgentsFilter = new BindableCollection<NameValueGuid>((
    from firstEntry in FirstEntries
    select new NameValueGuid { 
        Name = firstEntry.Agent,Value = firstEntry.AgentId
    }).Distinct()
);

但是由于某些原因,AgentsFilter Collection已经被重复了.我的Distinct()有什么问题?

解决方法

不同的将使用NameValueGuid上的Equals方法来查找重复项.如果不覆盖Equals,那么它将检查引用.

您可以添加一个额外的步骤,以避免覆盖Equals,使用匿名类型.匿名类型自动覆盖Equals和GetHashCode来比较每个成员.在匿名类型上进行区分,然后将其投射到您的课堂上将会解决问题.

from firstEntry in FirstEntries
select new
{ 
    Name = firstEntry.Agent,Value = firstEntry.AgentId
}).Distinct().Select(x => new NameValueGuid
{
    Name = x.Name,Value = x.Value
});

猜你在找的C#相关文章