我正在尝试使用List.Sort(
) 对对象列表进行排序,但在运行时它告诉我它无法比较数组中的元素。
无法比较数组中的两个元素
班级结构:
public abstract class Parent : IComparable<Parent> {
public string Title;
public Parent(string title){this.Title = title;}
public int CompareTo(Parent other){
return this.Title.CompareTo(other.Title);
}
}
public class Child : Parent {
public Child(string title):base(title){}
}
List<Child> children = GetChildren();
children.Sort(); //Fails with "Failed to compare two elements in the array."
为什么我不能比较实现的基类的子类IComparable<T>
?我可能遗漏了一些东西,但我不明白为什么不应该允许这样做。
编辑:应该澄清我的目标是 .NET 3.5 (SharePoint 2010)
Edit2:.NET 3.5 是问题(见下面的答案)。