19得票3回答
LINQ Except和自定义IEqualityComparer

我试图实现一个自定义比较器,用于比较两个字符串列表,并使用.Except() linq方法获取那些不在其中一个列表中的字符串。我之所以需要自定义比较器,是因为我需要进行“模糊”比较,即一个列表中的一个字符串可能嵌入到另一个列表中的字符串中。 我已经编写了以下比较器:public class I...

13得票2回答
为 LINQ GroupBy 编写自定义比较器

这个示例是我的实际问题的一个非常简化的版本,涉及到linq分组的自定义比较器。我做错了什么? 下面的代码产生了以下结果 (1.2, 0), (4.1, 0), (4.1, 0), (1.1, 0), 然而,我期望以下结果,因为1.1和1.2之间小于1.0。 (1.2, 0), (1.1, ...

13得票2回答
在C#中实现具有两个属性的对象的IEqualityComparer<T>

我有一个场景,需要对一些具有两个属性的对象进行去重操作,如下所示:public class SkillRequirement { public string Skill { get; set; } public string Requirement { get; set; } ...

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...

16得票3回答
使用IEqualityComparer进行合并

我只需要从两个列表中删除重复项,并将它们合并成一个列表。我还需要能够定义什么是重复项。我通过ColumnIndex属性来定义重复项,如果它们相同,则为重复项。这是我采取的方法: 我找到了一个好用的示例,用于编写内联比较器,用于那些在代码段中只需要使用一次的随机场合。 public clas...

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 ...

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

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

13得票1回答
在Objective-C中检查相等性

如何检查字典中的键与方法参数中的字符串是否相同? 例如,在下面的代码中,dictobj是NSMutableDictionary的对象,针对字典中的每个键,我需要将其与字符串进行比较。如何实现?我应该将key强制转换为NSString吗? -(void)CheckKeyWithString:(...

15得票3回答
IEqualityComparer不能按预期工作

我有一份存储在电脑上的文件路径List。我的目标是首先过滤掉那些具有相同名称的文件,然后过滤掉那些具有相同大小的文件。 为此,我创建了两个类来实现IEqualityComparer&lt;string&gt;接口,并实现了Equals和GetHashCode方法。var query = Fil...

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

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