Linq语法包含

时间:2014-10-10 05:26:25

标签: c# linq

Linq语法

有一个标签表:数据包含tagName狗,狗,猫

1 string[] test1 = new[] { "dogs", "dog" };

将test1与标记表进行比较,并返回不在test1结果中的标记列表:cat

var item1= Tags.Where(x => !test1.Contains(x.TagName)).ToList();

结果“猫”正确

  1. string[] test2 = new[] { "dogs", "dog", "cat", "bird" };
  2. 如何将test2与tag表进行比较并返回test2中找到的新项目结果应为bird。

    var item2= test2.Where(x => !Tags.Contains(test2)).ToList(); XX fails here?
    

    谢谢,

2 个答案:

答案 0 :(得分:1)

使用Except

            //Datasource
            string[] Tags = { "dogs", "dog", "cat" };
            string[] test2 = new[] { "dogs", "dog", "cat", "bird" };

            var result = test2.Except(Tags);

如果您对使用Contains真的感兴趣,那么您可以这样做: -

var result = test2.Where(x => !Tags.Contains(x));

答案 1 :(得分:0)

您可以使用Any()

var item2= test2.Where(x => Tags.Any(t=> !t.Contains(x))).ToList();