私はこのコードを持っており、リストをソートしていることを理解していますlstDMV
。しかし、それを分解するのを手伝ってください。
lstDMV.Sort((x, y) => DateTime.Compare(x.NotifDate, y.NotifDate));
とは=>
どういう意味ですか? そして、比較関数から返された整数に基づいてどのように機能するのでしょうか?
lstDMV
日付ではなく整数をソートする場合、どうすればソートできますか?
これはラムダ式と呼ばれます。比較自体については、DateTime.Compareメソッドを確認してください。その戻り値を参照してください。
といいlambda operator
ます。MSDNから;
=> トークンはラムダ演算子と呼ばれます。これはラムダ式で使用され、左側の入力変数を右側のラムダ本体から分離します。ラムダ式は匿名メソッドに似たインライン式ですが、より柔軟です。これらは、メソッド構文で表現される LINQ クエリで広く使用されています。
並べ替え操作には、次のSort()
ようなメソッドを使用します。
lstDMV.Sort((int1, int2) => int1.CompareTo(int2));
=>
のラムダ演算子
lstDMV.Sort((x, y) => DateTime.Compare(x.NotifDate, y.NotifDate));
基本的に、実行するコードのブロックを含む新しい委任を作成します。x と y はパラメータとして過去のものです。
コードを次のように変更することで、int のリストをソートできます。
lstDMV.Sort((x, y) => x.CompareTo(y));
(他の人はすでにlambda operator
あなたの質問の一部に答えています)
日付の代わりに整数を並べ替える場合、lstDMVを並べ替えるにはどうすればよいですか?
ints.Sort((i1, i2) => i1.CompareTo(i2));
まず第一に、これらはラムダ式です。今あなたの質問に: => は戻り値を定義する演算子です。
あなたの場合(x,y)
、 の値を返しますDateTime.Compare(x.NotifDate, y.NotifDate)
。これで、リストのSort()
- 関数は、 の値に応じてリストをソートしますDateTime.Compare(x.NotifDate, y.NotifDate)
。
MSDN の記事をご覧ください: http://msdn.microsoft.com/en-us/library/bb397687.aspx とても役に立ちます。
=> はラムダ式の演算子で、JavaScript の無名関数と考えることができます。
この場合
lstDMV.Sort((x, y) => DateTime.Compare(x.NotifDate, y.NotifDate)); Sort イベントのハンドラーとして使用されている関数を作成しています。コンパイラは、クローズ デリゲートの定義を知っているため、x と y の型を推測できます。