Chcę stworzyć szereg odniesień do moich macierzy. Powodem tego jest dlatego, że chcę zoptymalizować mój szybki algorytm transformacji Fouriera, aby był bezgłączony - lub raczej, mniej brandy.

Idea za to mam dwie tablice:

Array1 i Array2

Muszę ping ponga między dwoma w pętli, więc chcę przechowywać odniesienie do tablic takich:

[0] = Array1Ref
[1] = Array2Ref
[2] = Array1Ref
. . .

Czy to możliwe, aby to zrobić w C #? Jeśli tak, jak zdefiniowałbyś taką tablicę - czy musiałbym użyć niebezpiecznego?

c#
0
WDUK 24 lipiec 2020, 08:37

1 odpowiedź

Najlepsza odpowiedź

Jeśli chcesz uzyskać dostęp do innej tablicy w każdej iteracji pętli bez użycia warunkowego, można zachować wymianę dwóch zmiennych i używać jednego z nich.

var arrayRef = Array1;
var theOtherArrayRef = Array2;
for (...) {
    // use arrayRef in places where you would have accessed the array of array references
    
    ...

    // C# 7 tuple syntax
    (arrayRef, theOtherArrayRef) = (theOtherArrayRef, arrayRef);

    // pre-C# 7:
    /*
    var temp = arrayRef;
    arrayRef = theOtherArrayRef;
    theOtherArrayRef = arrayRef;
    */
}
1
Sweeper 24 lipiec 2020, 05:54