3

私はこのコードを持っており、リストをソートしていることを理解していますlstDMV。しかし、それを分解するのを手伝ってください。

lstDMV.Sort((x, y) => DateTime.Compare(x.NotifDate, y.NotifDate));

とは=>どういう意味ですか? そして、比較関数から返された整数に基づいてどのように機能するのでしょうか?

lstDMV日付ではなく整数をソートする場合、どうすればソートできますか?

4

6 に答える 6

2

これはラムダ式と呼ばれます。比較自体については、DateTime.Compareメソッドを確認してください。その戻り値を参照してください。

  • <0->t1はt2よりも早い
  • 0->t1はt2と同じです
  • >0->t1がt2より遅い
于 2013-01-18T14:17:03.630 に答える
2

といいlambda operatorます。MSDNから;

=> トークンはラムダ演算子と呼ばれます。これはラムダ式で使用され、左側の入力変数を右側のラムダ本体から分離します。ラムダ式は匿名メソッドに似たインライン式ですが、より柔軟です。これらは、メソッド構文で表現される LINQ クエリで広く使用されています。

並べ替え操作には、次のSort()ようなメソッドを使用します。

lstDMV.Sort((int1, int2) => int1.CompareTo(int2));
于 2013-01-18T14:17:34.393 に答える
2

=>のラムダ演算子

lstDMV.Sort((x, y) => DateTime.Compare(x.NotifDate, y.NotifDate));

基本的に、実行するコードのブロックを含む新しい委任を作成します。x と y はパラメータとして過去のものです。

コードを次のように変更することで、int のリストをソートできます。

lstDMV.Sort((x, y) => x.CompareTo(y));
于 2013-01-18T14:18:29.350 に答える
1

(他の人はすでにlambda operatorあなたの質問の一部に答えています)

日付の代わりに整数を並べ替える場合、lstDMVを並べ替えるにはどうすればよいですか?

ints.Sort((i1, i2) => i1.CompareTo(i2));
于 2013-01-18T14:20:29.667 に答える
1

まず第一に、これらはラムダ式です。今あなたの質問に: => は戻り値を定義する演算子です。

あなたの場合(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 とても役に立ちます。

于 2013-01-18T14:18:44.173 に答える
1

=> はラムダ式の演算子で、JavaScript の無名関数と考えることができます。

この場合

lstDMV.Sort((x, y) => DateTime.Compare(x.NotifDate, y.NotifDate)); Sort イベントのハンドラーとして使用されている関数を作成しています。コンパイラは、クローズ デリゲートの定義を知っているため、x と y の型を推測できます。

于 2013-01-18T14:18:38.013 に答える