Wie werden zwei Arrays nach demselben Index sortiert?

8

Ich habe 2 Arrays. Ich möchte sie nach derselben Indexnummer sortieren. Zum Beispiel habe ich diese:

%Vor%

Ich möchte einen Index nach b sortieren - & gt; a = {20, 120, 60, 50, 30, 40}

Wenn ich auch das String-Array c -> c = {"b", "u", "r", "s", "a", "1"}

habe

Ich möchte c nach b's Index sortieren - & gt; c = {"1", "b", "u", "r", "a", "s"}

Wie kann ich das tun? Danke im Voraus, Grüße.

    
1teamsah 13.06.2013, 11:26
quelle

2 Antworten

21

Verwenden Sie Array.Sort<TKey, TValue>(TKey[] keys, TValue[] items) , das zwei Eingabe-Arrays akzeptiert, eins ist das Array von Schlüsseln, das andere ist das Array von Elementen, die mit diesen Schlüsseln sortiert werden. Hier sind für Sie b Ihre Schlüssel und a Ihre Elemente.

Also:

%Vor%

verwendet die Schlüssel von b , um die Elemente von a zu sortieren.

  

Ich möchte c by b 's index - & gt; c = {"1", "b", "u", "r", "a", "s"}

Nicht genau klar, was du meinst. Zur gleichen Zeit wie Sie a mit b sortieren? Wenn ja, ist es einfach, da wir das oben genannte noch verwenden können. Zip a und c in ein einzelnes Array von Tuple<int, string> .

%Vor%

Dann:

%Vor%

wie oben. Dann extrahiere die Teile:

%Vor%

Alternativ, wenn Sie viele Arrays mit demselben Schlüsselsatz sortieren müssen:

%Vor%

Jetzt können Sie mit indexes alle benötigten Arrays sortieren. Zum Beispiel:

%Vor%

usw. nach Bedarf.

Möglicherweise einige kleinere Codierungsfehler hier. Kein Compiler zur Hand.

    
jason 13.06.2013, 11:29
quelle
2
%Vor%     
guest 13.06.2013 11:57
quelle

Tags und Links