我有以下
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 });