2011-02-08 23 views
0

親愛なるすべて どのように2の配列に一致し、C#を使用して新しい配列に一致した値を保持しますか?2つの配列を一致させ、c#を使用して一致した値を新しい配列に保持する方法?

for (int j = 0; j < arrayA.Length; j++) 
{ 
    for (int k = 0; k < arrayB.Length; k++) 
    { 
     if (arrayA[j] == arrayB[k]) 
     {    
      arrayB[k]; 
     //How i keep this matched record into a new array? 
     } 
    } 
} 

もう一つ:が2列にマッチし、新しい配列にレコードを維持するために彼らのいずれかの短いカット方法は何ですか? どんな種類の心臓。助けてください。

答えて

8

はなぜLINQを使用していない:

var matchingValues = arrayA.Intersect(arrayB).ToArray(); 

SIDE注:
結果の配列には異なる値があります。

+0

これは、特定のインデックスの値と一致しないと考えていますが、両方の配列にある値だけを返します。 – Massif

+0

@Massif:実際、OPのコードは、同じインデックスの値だけでなく、最初の配列の値と2番目の配列の値を比較します。だから私は交差点を実装しようとしていると思う... – digEmAll

+0

良い点...私はコメントする前に脳を再活性化することを学ぶ必要があります。 – Massif

5

List<int>またはお持ちのタイプに保管してください。あなたは配列にそれを変更する必要がある場合

List<int> list = new List<int>(); 
    for (int j = 0; j < arrayA.Length; j++) 
     { 
      for (int k = 0; k < arrayB.Length; k++) 
      { 
       if (arrayA[j] == arrayB[k]) 
       {    
        list.Add(arrayB[k]); // HERE !! 

       } 
      } 
     } 

さて、あなたが最後に行うことができます(私はあなたがintであると仮定):

int[] finalArray = list.ToArray(); 
関連する問題