)を使用してオブジェクトのリストを並べ替えようとしてList.Sort(
いますが、実行時に配列内の要素を比較できないことがわかります。
配列内の 2 つの要素を比較できませんでした
クラス構造:
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 が問題です (以下の回答を参照)。