2012-09-16 3 views
18

다차원 배열을 비교하는 방법은 무엇입니까? 그냥 진실/거짓.C에서 다차원 배열을 비교하는 방법 #?

double[,] data1 = new double[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };  
double[,] data2 = new double[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; 

//bool compare = data1.SequenceEqual(data2); 

1d 어레이와 같은 2d 어레이를 비교할 방법이 있습니까?

data1.SequenceEqual(data2);  

매 초마다 비교해야하므로 가장 쉬운 방법이 될 것입니다. 고마워.

답변

21

다차원 배열은 linq에서 일차원 열거 형으로 사용할 수 있습니다. 모든 치수의 길이를 확인하기 만하면됩니다. 이 조각은 충분해야한다 :

var equal = 
    data1.Rank == data2.Rank && 
    Enumerable.Range(0,data1.Rank).All(dimension => data1.GetLength(dimension) == data2.GetLength(dimension)) && 
    data1.Cast<double>().SequenceEqual(data2.Cast<double>()); 
+2

* 대 * 답변을 할 수 있습니다. – Daniel

+0

@ user287107 네, 정확히 내가 찾고있는 것입니다! 고마워요! –

-3

당신이

data1.SequenceEqual(data2); 
+2

다차원 배열에는 'SequenceEqual'에 대한 정의가 없습니다. 나는 그것이 저자가 그의 질문에 대한 해답을 찾고있는 이유라고 생각한다. – rusxg

관련 문제