111得票8回答
何时使用IComparable<T>与何时使用IComparer<T>

我正在尝试弄清楚我需要实现哪个接口,它们基本上都做同样的事情。在什么情况下我会选择使用其中一个而不是另一个?

101得票3回答
使用lambda表达式替代IComparer参数

使用C#,是否可以将Lambda表达式作为IComparer参数传递给方法调用? 例如像这样:var x = someIEnumerable.OrderBy(aClass e =&gt; e.someProperty, (aClass x, aClass y) =&gt; x.som...

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

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

64得票6回答
IComparable和IComparer的区别

IComparable和IComparer接口之间有什么区别?在使用Array.Sort()方法时是否总是需要使用这个接口?

54得票4回答
使用 IComparer 进行排序

我正在尝试使用一个 IComparer 对 Point 类型的列表进行排序。以下是 IComparer 类:public class CoordinatesBasedComparer : IComparer { public int Compare(Object q, Object r...

48得票5回答
使用自己的IComparer<T>与Linq OrderBy。

我有一个通用的List&lt;MyClass&gt; 假设 MyClass 有一个名为 InvoiceNumber 的属性,其中包含以下值: 200906/1 200906/2 .. 200906/10 200906/11 200906/12 我的列表绑定到一个BindingList&lt...

22得票4回答
C# lambda表达式和IComparer

我正在使用Lambda表达式在C#中对一个数组进行排序和搜索。 我不想在我的类中实现IComparer接口,因为我需要在多个成员字段上进行排序和搜索。 class Widget { public int foo; public void Bar() { ...

20得票2回答
使用自定义的IComparer实现字符串排序

我有一个在c#中的字符串集合,例如:var example = new string[]{"c", "b", "a", "d"}; 我想对这个进行排序,但我的 IComparer 方法不起作用,并且循环似乎是无限的。 基本上,我需要让 "b" 第一个出现,其次是 "c",然后我不关心其他任何...

18得票5回答
不同实现比较对象的优缺点

这个问题涉及两种本质上相同的代码实现。 首先,使用委托创建一个比较方法,该方法可以用作对对象集合进行排序时的参数:class Foo { public static Comparison&lt;Foo&gt; BarComparison = delegate(Foo foo1, Fo...

15得票2回答
我们应该扩展Comparer<T>还是实现IComparer<T>?

在编写比较器类时,从C# 4.0版本开始的最佳实践是什么: a. 我们应该继承自Comparer抽象类吗?还是 b. 应该实现IComparer接口。 这样做的优缺点是什么?