2011-02-08 73 views
0

親愛的所有人, 我如何匹配2個數組並將匹配值保存到使用c#的新數組中?如何匹配兩個數組並將匹配的值保存到使用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(); 

邊注意:
結果數組將具有不同的值。

+0

我不相信這會匹配特定索引處的值,它只會返回兩個數組中的值。 – Massif 2011-02-08 11:09:53

5

將其存儲在List<int>或您擁有的任何類型中。 (我假設你是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[] finalArray = list.ToArray();