これを行う方法がわかりません。これらの2つの質問はうまくいきません。1つはデリゲートと比較器を使用できないと言い、もう1つはラムダをデリゲートに変換できないと言います。
私はのを持っていGenericList<T>
ますScheduleItem
。各アイテムには、であるPaymentDate
プロパティがありDateTime?
ます。
基本的に、このリストをそのプロパティで並べ替えたいと思います(古い->最新)。これを行う最も簡単な方法は何ですか?
最初に私はこれを試しました:
transaction.ScheduleCollection.Sort(delegate(ScheduleItem p1, ScheduleItem p2)
{
return p1.PaymentDate.CompareTo(p2.PaymentDate);
});
そして、私はこれらの2つのエラーを受け取ります:
デリゲート型ではないため、匿名メソッドを型'System.Collections.IComparer'に変換できません
「System.Nullable」には「CompareTo」の定義が含まれておらず、「System.Nullable」タイプの最初の引数を受け入れる拡張メソッド「CompareTo」が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
そして私が試したもう1つはこれでした:
transaction.ScheduleCollection.Sort((lhs, rhs) => (lhs.PaymentDate.CompareTo(rhs.PaymentDate)));
取得します
デリゲート型ではないため、匿名メソッドを型'System.Collections.IComparer'に変換できません
public void Sort(IComparer comparer);
それが私が使用しなければならないソート方法です。