5

異なるソースからの3つのDateTimeリストがある場合

 List<Datetime> list1 = GetListOfDates();
 List<Datetime> list2 = GetAnotherListOfDates();
 List<Datetime> list3 = GetYetAnotherListOfDates();

3つのリストすべてに存在するDateTimeのリストを返す最も簡単な方法は何でしょうか。LINQステートメントはありますか?

4

4 に答える 4

5
List<DateTime> common = list1.Intersect(list2).Intersect(list3).ToList();
于 2013-02-16T17:34:25.050 に答える
2
HashSet<DateTime> common = new HashSet<DateTime>( list1 );
common.IntersectWith( list2 );
common.IntersectWith( list3 );

このHashSetようなタスクには、クラスを使用するよりも効率的ですEnumerable.Intersect

更新:すべての値が同じであることを確認してくださいDateTimeKind

于 2013-02-16T17:39:55.677 に答える
1
var resultSet = list1.Intersect<DateTime>(list2).Intersect<DateTime>(list3);
于 2013-02-16T17:35:39.050 に答える
1

リストを交差させることができます:

var resultSet = list1.Intersect<DateTime>(list2);
var finalResults = resultSet.Intersect<DateTime>(list3);

foreach (var result in finalResults) {
   Console.WriteLine(result.ToString());
} 
于 2013-02-16T17:35:54.540 に答える