查看几个DateTime数组中是否有匹配项的最简单方法是什么



如果我有3个来自不同来源的DateTime列表

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

返回所有3个列表中都存在的DateTime列表的最快方法是什么。是否有LINQ声明?

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

CCD_ 1类对于这样的任务比使用CCD_ 2更有效。

更新:确保所有值都属于相同的DateTimeKind

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());
} 

相关内容

  • 没有找到相关文章