2012-09-16 20 views
18

Jak porównać tablice wielowymiarowe? Tylko prawda/fałsz.Jak porównać tablice wielowymiarowe w języku 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); 

Czy można porównać tablice 2d takie jak tablica 1d?

data1.SequenceEqual(data2);  

Muszę porównywać co sekundę, więc najłatwiej będzie świetnie. Wielkie dzięki.

Odpowiedz

21

Tablica wielowymiarowa może być używana w linq jako przelicznik jednowymiarowy. Musisz tylko sprawdzić długość wszystkich wymiarów. Ten fragment powinien być wystarczająco:

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

* * Wielki odpowiedź. – Daniel

+0

@ user287107 Tak, dokładnie to, czego szukam! Wielkie dzięki! –

-3

Można to zrobić

data1.SequenceEqual(data2); 
+2

Tablice wielowymiarowe nie zawierają definicji "SequenceEqual". Uważam, że to jest powód, dla którego autor szukał odpowiedzi na swoje pytanie. – rusxg

Powiązane problemy