C# List<T> 使用 IComparer 参数排序给出编译错误

标签 c# list sorting icomparer

有人可以向我解释一下这是如何工作的吗?我按照在 http://msdn.microsoft.com/en-us/library/234b841s.aspx 找到的 MSDN 示例进行操作.

我已经制作了自己的 CustomObject 并为它制作了一个 Comparer。

这是 CustomObjectComparer类:

public class CustomObjectComparer : System.Collections.Generic.IComparer<CustomObject>
{
    public int Compare(CustomObject co1, CustomObject co2)
    {
         //Impementation Omitted
    }

}

然后当我有一个 List<CustomObject>并尝试执行以下操作我得到编译错误。

List<CustomObject> list = new List<CustomObject>();
CustomObjectComparer comparer = new CustomObjectComparer();
list.Sort(comparer);

错误: Argument 1: cannot convert from 'CustomObjectComparer' to 'System.Collections.Generic.IComparer<CustomObject>'

不是 CustomObjectComparer一个System.Collections.Generic.IComparer

最佳答案

看起来您的列表包含 CustomObjectComparer s,不是 CustomObject s.

<罢工>

您可以传递一个可以比较 CustomObjectComparer 的比较器s,或者(更有可能)将列表更改为 List<CustomObject> .

编辑:如果您有两个名为 CustomObject 的类型,就会发生这种情况。 ,或者如果您还有其他错误。

关于C# List<T> 使用 IComparer 参数排序给出编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5183726/

相关文章:

c# - 进程总是通过默认打印机打印文档

c# - 使用 contains 时未将对象引用设置为 LINQ 中的对象实例

python - 检查字符串包含/不包含不同列表中的值

java - 使用列表<字符串>

python - 按第三个元素排序 Python 列表,然后按第一个元素,等等?

c# - 自定义 WPF/XAML Canvas

C# 我的数据对象集合应该在哪里实例化?

java - 如何在 Java 8 中对 List<Object> 进行排序

javascript - 给定一个对象数组,如何按深度为 n 的属性对对象进行排序

c# - 在每个条目后按名称排序