SiC*_*SiC 20 .net c# linq hashset
我想在c#中获得两组int之间的区别.给定s1和s2我想返回那些在s1而不在s2中的int.我可以做一些事情,比如:
List<int> s1 = new List<int>();
List<int> s2 = new List<int>();
foreach (int i in s1)
{
if (s1.Contains(i))
{
//
}
else
{
//
}
}
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有人能指出更清洁的东西.我想做点什么
List<int> omitted = s1.Difference(s2);
Run Code Online (Sandbox Code Playgroud)
不确定是否有任何人可能指出的现有方法或LINQ结构?谢谢.
Bri*_*ian 27
我想你想要HashSet.Except.也就是说,使用HashSets,而不是使用Lists,然后操作可用.如果您所代表的内容实际上是一个"设置",这是一个更好的类型.(如果你已经有了一个列表,你可以创建一个'新的HashSet'.)
lep*_*pie 26
IEnumerable<T> a, b;
var added = a.Except(b);
var removed = b.Except(a);
Run Code Online (Sandbox Code Playgroud)