C# 如何比较C语言中的两个列表?
我有两个列表要比较: 我想比较列表A和列表B,这样如果列表A中存在列表B中的任何日期,那么返回true 例如,如果列表B中的14-01-2020存在于列表A中,而列表A确实存在,那么它应该返回true 怎么做 请注意:列表A中的数据包含整个月份的日期,而列表B仅包含几个日期 如果列表A中存在列表B中的任何日期,则返回true 反之亦然:C# 如何比较C语言中的两个列表?,c#,list,C#,List,我有两个列表要比较: 我想比较列表A和列表B,这样如果列表A中存在列表B中的任何日期,那么返回true 例如,如果列表B中的14-01-2020存在于列表A中,而列表A确实存在,那么它应该返回true 怎么做 请注意:列表A中的数据包含整个月份的日期,而列表B仅包含几个日期 如果列表A中存在列表B中的任何日期,则返回true 反之亦然: return ListA.Any(x => ListB.Contains(x)); 哪一个更适合您将取决于数据的性质,但我通常倾向于在较短的序列中运行
return ListA.Any(x => ListB.Contains(x));
哪一个更适合您将取决于数据的性质,但我通常倾向于在较短的序列中运行Contains
此外,我看到:
列表A中的数据包含整个月份的日期
根据您的确切意思,您可能能够利用这一事实:
var start = A.Min(x => x);
var stop = A.Max(x => x);
return ListB.Any(x => x >= start && x <= stop);
最后,如果您知道一个或两个序列中的数据已排序,则可以显著优化这些数据
如果列表A中存在列表B中的任何日期,则返回true
反之亦然:
return ListA.Any(x => ListB.Contains(x));
哪一个更适合您将取决于数据的性质,但我通常倾向于在较短的序列中运行Contains
此外,我看到:
列表A中的数据包含整个月份的日期
根据您的确切意思,您可能能够利用这一事实:
var start = A.Min(x => x);
var stop = A.Max(x => x);
return ListB.Any(x => x >= start && x <= stop);
最后,如果您知道一个或两个序列中的数据已排序,则可以对其进行显著优化。ListA.Anydt=>ListB.Containsdt如何?我想这里已经回答了这个问题:这是否回答了您的问题?那么ListA.Anydt=>ListB.Containsdt呢?我想这里已经回答了这个问题:这是否回答了您的问题?谢谢@Joel,我一定会试试这个。该睡觉了。如果可行,我会尽快接受。谢谢你的帮助!:谢谢@Joel,我一定会试试这个。该睡觉了。如果可行,我会尽快接受。谢谢你的帮助!: