2011-02-08 70 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();