14得票1回答
如何在Linq的Distinct方法中使用自定义比较器?

我正在阅读一本关于Linq的书,看到Distinct方法有一个重载可以接受一个比较器。这将是解决我的问题的好方法,我想从集合中获取不同的实体,但希望比较基于实体ID,即使其他属性不同也是如此。根据这本书的说法,如果我有一个Gribulator实体,我应该能够创建一个像这样的比较器...priv...

14得票3回答
LINQ orderby和IComparer的比较

我想知道使用哪种方法更好。 是使用IComparer类和Compare方法进行排序还是在List上使用LINQ orderby。两者都可以正常工作,但哪一种对于大型列表来说更好。

11得票4回答
如何让我的通用比较器(IComparer)处理空值?

我正在尝试编写一个通用的对象比较器来进行排序,但是我注意到它不能处理要比较的值之一为null的情况。当一个对象为null时,我希望它将其视为空字符串并进行比较。我已经尝试将null值设置为String.Empty,但是在调用CompareTo()方法时出现“对象必须是String类型”的错误。...

11得票2回答
如何在SortedDictionary中使用自定义IComparer?

我在使用自定义 IComparer 为 SortedDictionary<> 时遇到了困难。目标是将电子邮件地址以特定格式 (firstnam.lastname@domain.com) 作为键,并按姓氏排序。 当我像这样做时:public class Program { pub...

11得票7回答
使用IComparer进行洗牌

首先,我知道Fisher-Yates shuffle算法。但是假设我希望允许用户从下拉列表中选择排序选项,其中包括“随机”选项。根据他们的选择结果,我只想替换我的排序算法中的IComparer实例。这个IComparer应该长什么样子? 谷歌上出现了大量错误的结果,它们都采用这种形式: p...

10得票2回答
快速的IComparer?

在我重新发明轮子之前,有没有一些框架的方法可以从Func<T,T,int>创建一个IComparer<T>? 编辑 如果我没记错(已经有一段时间了),Java支持匿名接口实现。在C#中是否存在这样的构造,或者委托被认为是完全替代方案?

9得票2回答
派生类是否应该隐藏从Comparer<T>继承的Default和Create静态成员?

我正在编写一个 IComparer&lt;T&gt; 实现,通过从 Comparer&lt;T&gt; 类派生,就像 MSDN 推荐的那样。例如: public class MyComparer : Comparer&lt;MyClass&gt; { private readonly...

9得票4回答
在List<T>.Sort()方法中,是否会将一个项与自身进行比较?

如果我将自定义的IComparer传递给List的实例的Sort()方法,那么比较器的Compare(x,y)方法是否会使用相同的项进行调用? 即:是否可能调用Compare(x,x)。 编辑:更关注列表项是不同的情况。

9得票2回答
当IComparer需要表明“保持现有的排序顺序”时,应该返回什么?

我正在实现一个自定义的comparer,以便在各种视图中应用自定义排序顺序来对项目进行排序。 有时,我发现我希望保留项目的现有顺序,在这种情况下,我应该从我的Compare方法实现中返回什么?仅返回0是否足够,还是我需要积极地确定哪个项目先出现?

8得票3回答
修改List.Contains行为

我有一个包含“class MyObj : IComparable”的“List”。我按照“IComparable”接口在“MyObj”类中编写了“CompareTo”方法,但当我使用“List.Contains(myObjInstance)”时,它返回“false”,而应该是“true”。 ...