有人可以向我解释一下这是如何工作的吗?我按照在 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/