我在C#中有两个列表
List<int> list1 = new List<int> { 78, 92, 100, 37, 81 };
List<int> list2 = new List<int> { 3, 92, 1, 37 };
预期结果应为
{ 3, 78, 100, 1, 81 }
请注意! * 重复 *:92
和37
* 不再出现在新列表中。新列表应该包含两个列表中不重复的元素。
每个列表 * 不能有重复的值 *。理想情况下,我想将其扩展到一个对象。
我可以手动迭代两个列表,查找并删除重复项。
我的问题是:有没有一种更优雅、更简洁的方式来处理. NET C#?
5条答案
按热度按时间cngwdvgl1#
您正在查找SymmetricExceptWith或其仿真,例如
让我们来看看项目:
结果:
如果您想要
List<int>
(而不是HashSet<int>
)作为结果,请添加ToList()
:8yparm6h2#
如果求两个列表的交集,然后从它们的并集中减去它,你会得到结果:
wgxvkvu93#
bqf10yzr4#
你可以使用Linq中的Distinct()方法,如果给定一个包含重复项的列表,它会返回整数序列中的不同元素。
kgqe7b3p5#