1

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

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;

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

谁能帮我这个?

谢谢!

4

1 回答 1

2

流利的语法:

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

在查询语法中:

from item1 in toCompare1
where !toCompare2.Any(item2 => item1.Contains(item2))
select item1;
于 2013-05-30T05:48:21.643 回答