【问题标题】:Check of two list have colliding element?检查两个列表是否有冲突元素?
【发布时间】:2010-09-10 06:53:20
【问题描述】:

有没有办法检查一个列表是否与另一个列表冲突?例如:

    bool hit=false;
    foreach(var s in list2)
    {
        if (list1.Contains(s))
        {
            hit = true;
            break;
        }
    }
    if (!hit)
    {

【问题讨论】:

标签: c# .net list collections


【解决方案1】:

.NET 有许多可用于枚举的集合操作,因此您可以使用the set intersection 在两个列表中查找成员。使用Any() 找出结果序列是否有任何条目。

例如

if(list1.Intersect(list2).Any()) 

【讨论】:

    【解决方案2】:

    你总是可以使用 linq

    if (list1.Intersect(list2).Count() > 0) ...
    

    【讨论】:

    • 请记住,Count() 可能需要枚举整个序列。请改用Any()
    【解决方案3】:

    如果你能够使用 Linq,那么if(list1.Intersect(list2).Count > 0) {...collision...}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      • 2013-03-21
      • 2019-05-16
      • 1970-01-01
      • 2017-11-26
      • 2012-06-07
      • 1970-01-01
      相关资源
      最近更新 更多