我有两个包含数据的列表,如下例
var listA = new[]{ "A", "B", "C", "D", "B", "E", "C", "F", "G"};
var listB = new[]{ "A", "B", "C", "E" };
listA 可以有重复的值。
我需要使用 LINQ 或 C# 从 listB 中查找在 listA 中具有唯一值(仅限非重复)的所有项目。
预期结果 listC 应该是这样的
listC = {A, E};
我正在使用以下代码
var list = listA.GroupBy(x => x).All(g => g.Count() == 1);
var listC = list.Except(listB).ToList();
答案 0 :(得分:0)
您可以使用 contains()
方法,因为它们属于 string
类型。
答案 1 :(得分:0)
var listA = new[]{ "A", "B", "C", "D", "B", "E", "C", "F", "G"};
var listB = new[]{ "A", "B", "C", "E" };
var listC = listB.Where(x=>listA.Where(y=>y==x).Count() == 1);
foreach(var item in listC) Console.WriteLine(item);
我能想到的最简单最天真的解决方案。不过闻起来像作业。