有人可以向我解释这是如何工作的吗?我按照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
?
答案 0 :(得分:4)
看起来您的列表包含 CustomObjectComparer
s,而不是CustomObject
s。
您可以传递一个可以比较 CustomObjectComparer
的比较器,或者(更有可能)将列表更改为List<CustomObject>
。
编辑:如果您有两种名为CustomObject
的类型,或者您也有不同的错误,则会发生这种情况。