嵌套for Linq的循环中断

时间:2013-05-30 05:38:41

标签: linq for-loop nested

我对Linq很新,我在创建Linq等效的以下嵌套for循环时遇到了麻烦:

for(int i = 0; i < toCompare1.Length; i++)
{
      bool isUnique = true;

      for(int j = 0; j < toCompare2.Length; j++)
      {
             if(toCompare1[i].Contains(toCompare2[j]))
             {
                 isUnique = false;
                 break;
             }
      }

      if(isUnique == true)
      {
          uniqueValues.Add(toCompare1[i]);
      }
}

目前,我的草案代码是这样的:

var unique =
    from c1 in toCompare1
    from c2 in toCompare2
    where !c1.Contains(c2)
    select c1;

但它复制了我想要的条目。

任何人都可以帮我吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

用流利的语法:

toCompare1.Where(item => !toCompare2.Any(item2 => item.Contains(item2)))

在查询语法中:

from item1 in toCompare1
where !toCompare2.Any(item2 => item1.Contains(item2))
select item1;