我想比较两个列表,比如说 A 和 B。我不知道比较它们的正确方法!
我使用了 foreach 循环 [嵌套],这会导致重复 [正在考虑排列/组合,这不是必需的。]
例如。
foreach( A a in A_list)
{
foreach( B b in B_list)
{
if(a==b)
{
addlog(a);
}
}
}
请指导我!
您可以根据自己的需要使用Intersect
或方法。Except
例如:
var commonValues = A.Intersect(B);
var aMembersNotInB = A.Except(B);
var bMembersNotInA = B.Except(A);
var commonElements = A.Intersect(B);
foreach(var element in commonElements)
{
//your processing.
}
如果要定义自己的相等条件,可能需要实现IEquatable 。
你可以使用Enumerable.Intersect
方法。
通过使用默认相等比较器比较值来生成两个序列的集合交集。
var newlist = A_list.Intersect(B_list);
foreach(var i in newlist)
{
// do your work
}
这是一个DEMO
.