183得票5回答
IEqualityComparer<T>和IEquatable<T>有什么区别?

我想了解何时应该使用IEqualityComparer&lt;T&gt;和IEquatable&lt;T&gt;。两者的MSDN文档看起来非常相似。

163得票3回答
.NET中IEqualityComparer<T>中的GetHashCode方法的作用是什么?

我正在尝试理解接口IEqualityComparer的GetHashCode方法的作用。下面的示例来自MSDN:using System; using System.Collections.Generic; class Example { static void Main() { ...

152得票11回答
在LINQ to Objects中,Distinct不起作用。

class Program { static void Main(string[] args) { List&lt;Book&gt; books = new List&lt;Book&gt; { new Book ...

120得票7回答
如何使用IEqualityComparer接口

我的数据库里有一些编号相同的铃铛,我想把它们全部获取而不重复。我创建了一个比较类来完成这项工作,但是执行该函数时,与没有去重的函数相比,延迟很大,从0.6秒增加到3.2秒! 我是否做得对,还是需要使用另一种方法?reg.AddRange( (from a in this.dataCon...

79得票8回答
可以在IComparer或IEqualityComparer或任何单方法接口的位置上传递lambda表达式吗?

我看到一些代码,其中这个人将lambda表达式传递给了一个期望IComparer或IEqualityComparer的ArrayList.Sort(IComparer here)或IEnumerable.SequenceEqual(IEnumerable list, IEqualityComp...

70得票4回答
如何实现IEqualityComparer以返回不同的值?

我有一个L2E查询,返回了一些包含重复对象的数据。我需要删除那些重复的对象。基本上,如果它们的ID相同,那么它们就是重复的对象。我试过 q.Distinct(),但仍然返回重复的对象。然后我尝试实现自己的 IEqualityComparer 并将其传递给 Distinct() 方法。该方法失败...

68得票6回答
IStructuralEquatable和IStructuralComparable解决了什么问题?

我注意到在 .NET 4 中添加了这两个接口,以及一些相关的类。它们对我来说似乎有点多余;我读了几篇博客,但仍然无法弄清楚它们解决的问题在 .NET 4 之前是棘手的什么。 IStructuralEquatable 和 IStructuralComparable 有什么用处?

66得票5回答
使用ReferenceEquals的IEqualityComparer<T>

是否存在默认的IEqualityComparer&lt;T&gt;实现,它使用ReferenceEquals函数? EqualityComparer&lt;T&gt;.Default使用ObjectComparer,它使用object.Equals()函数。在我的情况下,对象已经实现了IEq...

38得票5回答
EqualityComparer<T>.Default与T.Equals的区别

假设我有一个通用的 MyClass&lt;T&gt;,需要比较两个类型为 &lt;T&gt; 的对象。通常我会这样做... void DoSomething(T o1, T o2) { if(o1.Equals(o2)) { ... } } 现在假设我的MyClass...

36得票2回答
LINQ使用自定义IEqualityComparer进行Except操作

我正在尝试查找两个泛型列表之间的差异,就像下面的示例一样。 即使t1和t2包含相同的属性,它们也不是同一个对象,因此我需要实现一个IEqualityComparer。 这似乎可以使用此示例来实现,但是真正的类还有几个其他属性,我还需要对几个其他类执行相同的操作。 所以我想知道我是否在重新发...