3

C# で LINQ を使用しています

このコードの結果はdatesof​​ 型になりますLookup<TKey, TElement>

   var dates = timetableEvents.GroupBy(x => x.DateTimeStart);

代わりに、(DateTime 型の) DateTimeStart のリストだけが必要です。

LINQ 式を変更するにはどうすればよいですか?

4

2 に答える 2

7

Select代わりに単に使用してください:

var dates = timetableEvents.Select(x => x.DateTimeStart);

または、各グループから 1 つだけが必要な場合:

var dates = timetableEvents.GroupBy(x => x.DateTimeStart).Select(x => x.Key);

そして、少し速く実行したい場合は、 Distinct を使用できます(Rawlingの回答のように)が、多くのオブジェクトがない限り、おそらく大きな違いに気付かないでしょう(ただし、意図ははるかにクリーンです):

var dates = timetableEvents.Select(x => x.DateTimeStart).Distinct();

LINQ : 101 LINQ Samples

于 2012-11-05T12:36:52.917 に答える
2

開始日時のみが必要な場合は、

var dates = timetableEvents.Select(x => x.DateTimeStart).Distinct();

よりも効率的かもしれません

var dates = timetableEvents.GroupBy(x => x.DateTimeStart).Select(x => x.Key);

イベントをグループ化する必要がないことがわかっているためです。

于 2012-11-05T13:09:14.243 に答える