【发布时间】:2020-01-31 12:26:23
【问题描述】:
我在 c# 中有两个列表,我想检索 listaA 上所有不在 listaB 中的元素,所以我决定使用 except 方法,如下面的代码:
List<string> listaA = new List<string>() { "a", "b", "b", "c", "d", "e", "e" };
List<string> listaB = new List<string>() { "e" };
var inter = listaA.Intersect(listaB);
var excep = listaA.Except(listaB).Count();
输出除外 -> 4
但是我的预期输出应该是 5,因为我们有两个“b”,所以如果在 ListaA 中我们排除了 listaA 中存在的所有元素,为什么输出是 4 而不是 5,我怎样才能让它工作如我所料?
【问题讨论】:
-
来自msdn 只返回唯一元素。
-
var excep = listaA.Count(l => !listaB.Contains(l));这个简单的解决方法会返回预期的结果。链接的线程有这个答案 -
@Pugnatore,我在这里添加了一个答案stackoverflow.com/a/60004491/361177,可能会解决您的具体问题
-
谢谢大家! :)