我正在使用 PLinq,我必须将每个 PLINQ 的项目集合添加到共享集合中,目前我正在使用 BlockingCollection> 在 C# 中是否有任何其他可用的数据结构具有类似的功能。我需要让这个集合来保存给定键的不同值。
问问题
168 次
1 回答
1
我通过使用 IComparer 创建 List> 解决了我的问题。
这是比较器公共类 KeyValueComparer : IEqualityComparer> { public bool Equals(KeyValuePair x, KeyValuePair y) { return (x.Key == y.Key && x.Value == y.Value); }
public int GetHashCode(KeyValuePair<string, string> referenceObj)
{
//Check whether the object is null
if (Object.ReferenceEquals(referenceObj, null)) return 0;
//Get hash code for the Name field if it is not null.
int hashProductName = referenceObj.Equals(default(KeyValuePair<string, string>)) ? 0 : referenceObj.Value.GetHashCode();
return hashProductName;
}
}
我尝试调用集合 var collection= CollectionWithKVPair.Distinct(new KeyValueComparer());
这将解决列表具有多个相同键但值不同的问题。
于 2013-05-03T15:52:56.567 回答