[英]How to get the difference of two list in C# using LINQ
我有两个清单,例如
List<String> LISTONE=new List<String>()
和
List<String> LISTTWO=new List<String>()
并且其中包含
LISTONE "A"
"B"
"C"
LISTTWO "A"
"D"
"E"
所需的输出是
LISTTEMP "B"
"C"
"D"
"E"
有什么办法可以使用LINQ做到这一点
可以使用Except()和Concat() LINQ方法来完成:
LISTONE.Except(LISTTWO).Concat(LISTTWO.Except(LISTONE))
LISTONE.Except(LISTTWO).Union(LISTTWO.Except(LISTONE)) //.Distinct()?
编辑:联合方法实现不同的行为,所以不同将是多余的。
假设您要“所有元素都不会出现在两个列表中”,在这种情况下,正如我上面提到的,“ B”也应该在其中。 这是linq'ed的答案。
one.Concat(two).Except(one.Intersect(two))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.