3

2つのリストを比較したいのですが、AとBとしましょう。それらを比較する正しい方法がわかりません。

foreachループ[nested]を使用しましたが、これにより重複が発生します[不要な順列/組み合わせが検討されています。]

例えば。

   foreach( A a in A_list)
   {
   foreach( B b in B_list)
     {
      if(a==b)
      {
       addlog(a);
      }
     }
   }

Plzが案内してくれます!

4

3 に答える 3

5

Intersect必要に応じて、またはExcept方法を使用できます。例えば:

var commonValues = A.Intersect(B);  
var aMembersNotInB = A.Except(B); 
var bMembersNotInA = B.Except(A);  
于 2013-03-26T12:32:58.610 に答える
5
var commonElements = A.Intersect(B); 
foreach(var element in commonElements)
{
     //your processing.
}

独自の等式条件を定義する場合は、IEquatableを実装する必要があります。

于 2013-03-26T12:33:46.257 に答える
2

メソッドを使用できますEnumerable.Intersect

デフォルトの等式比較器を使用して値を比較することにより、2つのシーケンスの集合の共通部分を生成します。

var newlist = A_list.Intersect(B_list); 
foreach(var i in newlist)
{
  // do your work
}

これがDEMOです。

于 2013-03-26T12:34:07.513 に答える