我有两个清单
List<int> a = {1,2,3};
List<int> b = {3,4};
我需要以输出应
的方式比较它们1 false
2 false
4 true
输出是使用以下逻辑
1,2
位于a
但不在b
中,因此设置为false
而3
在两个列表中,因此它不在输出中b
但不在a
中,因此它们设置为true
返回类型是具有List<modelClass>
属性
int id, bool isTrue
你能帮助我吗?
答案 0 :(得分:2)
如果您不关心性能,可以使用以下LINQ:
a.Except(b)
.Union(b.Except(a))
.Select(item => new { id = item, isTrue = b.Contains(item) });
使用HashSet
:
var setA = new HashSet<int>(a);
var setB = new HashSet<int>(b);
setA.SymmetricExceptWith(b);
var result = setA.Select(item => new { id = item, isTrue = setB.Contains(item) });