13得票3回答
如何在不同类的多个属性中使用linq的`Except`?

我正在尝试学习Linq/Lambda表达式,但在某个地方卡住了。 我的做法 我创建了两个类,并为它们创建了一些共同的属性。这些类像这样(这是测试代码)。 class TestA { public int Id { get; set; } public...

11得票1回答
IEqualityComparer与EqualityComparer有什么区别?

我已经阅读了这篇post,但它并没有回答我的问题。 MSDN 说: 我们建议您从EqualityComparer(Of T)类派生,而不是实现IEqualityComparer(Of T)接口,因为EqualityComparer(Of T)类使用IEquatable(Of T).Equ...

11得票2回答
使用公差的IEqualityComparer<double>;如何实现GetHashCode?

我正在实现一个可重复使用的DoubleEqualityComparer(采用自定义的容差:“epsilon”构造函数参数),以便于在使用双精度序列的LINQ时更加方便。例如: bool myDoubleFound = doubles.Contains(myDouble, new Double...

9得票1回答
键控集合字符串不区分大小写

我按照文档尝试了以下步骤,但无法使其正常工作。我有一个带有字符串键的KeyedCollection。 如何在KeyedCollection中使字符串键不区分大小写? 在Dictionary中,只需在ctor中传递StringComparer.OrdinalIgnoreCase即可。 pr...

9得票1回答
LINQ IEqualityComparer<string> 忽略大小写

我正在对元素列表进行排序: var matchEle = listOfElements.Where(e =&gt; e.Properties().Any(p =&gt; p.Name.Contains("Key", Asking for IEqualityComparer))).First(...

8得票3回答
哈希表(字典等)与整数键

我已经思考了几天...欢迎打破我的任何假设。 我们正在使用整数键的字典。我认为在这种情况下,键的值直接用作哈希值。如果键分组在一个小范围内,这是否意味着键哈希(与键本身相同,对吗?)的分布将在类似的小范围内,因此不适合用作哈希表的选择? 提供一个IEqualityComparer是否更好,...

8得票3回答
如何使用公差实现IEqualityComparer<PointF>

这个问题类似于这里的问题。 我们都知道什么是PointF,不是吗?这是数据结构: public struct PointF { public float X; public float Y; } 如何使用容差实现IEqualityComparer&lt;PointF&gt;?假...

8得票1回答
EqualityComparer<T>.Default不够智能

我在阅读EqualityComparer&lt;T&gt;.Default的源代码时发现它并不是那么聪明。这里有一个例子: enum MyEnum : int { A, B } EqualityComparer&lt;MyEnum&gt;.Default.Equals(MyEnum.A, M...

8得票4回答
为什么 IEqualityComparer<T> 接口有 GetHashCode() 方法?

在命名空间System.Collections.Generic中,IEqualityComparer有以下方法: bool Equals(T x, T y); int GetHashCode(T obj); 由于此接口用于检查对象的相等性,因此第一个方法Equals是有意义的。但为什么我...

7得票5回答
比较两个列表并忽略特定属性

我有两个员工列表,希望从中获取唯一记录,但这有些棘手。每个列表都有一个员工类: public class Employee { // I want to completely ignore ID in the comparison public int ID{ get; set; } /...