什么是最简单的方法来查看是否有任何匹配的几个DateTime数组?

问题描述:

如果我有来自不同来源的什么是最简单的方法来查看是否有任何匹配的几个DateTime数组?

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

什么是返回存在于名单的所有3日期时间的列表的最快方法3名日期时间列表。是否有一些LINQ声明?

List<DateTime> common = list1.Intersect(list2).Intersect(list3).ToList(); 

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

你可以相交的列表:

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

foreach (var result in finalResults) { 
    Console.WriteLine(result.ToString()); 
} 

HashSet<DateTime> common = new HashSet<DateTime>(list1); 
common.IntersectWith(list2); 
common.IntersectWith(list3); 

HashSet类是这样的任务比使用Enumerable.Intersect更有效。

更新:请确保您所有的值都是相同的DateTimeKind