C # sortiert Arrays in aufsteigender und absteigender Reihenfolge

8

Ich habe Probleme, eine Methode zu schreiben, die true zurückgibt, wenn die Elemente eines Arrays (Zahlen) in sortierter Reihenfolge aufsteigend oder absteigend und falsch sind, wenn sie nicht in einer sortierten Reihenfolge sind. Ich kann einen korrekten booleschen Wert zurückgeben, wenn das Array aufsteigend ist, aber ich weiß auch nicht, wie man in der gleichen Methode nach absteigender Reihenfolge sucht. Ich habe derzeit:

%Vor%

Kann jemand Hilfe anbieten, um auch nach einem sortierten absteigenden Array zu suchen? Prost!

    
user2747367 15.06.2015, 11:39
quelle

5 Antworten

9

Es sollte etwa so aussehen:

%Vor%

Beachten Sie die Verwendung der Variable ascending , um die "Richtung" des Arrays zu speichern. Es wird beim ersten Mal initialisiert, wenn zwei verschiedene Elemente gefunden werden.

Wenn Sie möchten, können Sie sogar die "Richtung" des Arrays zurückgeben:

%Vor%

und innerhalb der if (ascending == null)

%Vor%

Dies ist eine generische Version basierend auf IEnumerable<TSource> :

%Vor%

Beachten Sie die Verwendung von bool first / TSource previous , um die i - 1 zu verarbeiten (und die Tatsache, dass der for -Zyklus das erste Element überspringen konnte)

    
xanatos 15.06.2015, 11:44
quelle
3

Mit Linq -

%Vor%     
Yogi 15.06.2015 11:51
quelle
2

Dies verwendet eine Schleife, um beide Fälle zu testen:

%Vor%

Verwendung:

%Vor%

Wenn Sie es zu einer Erweiterungsmethode machen, können Sie es mit einem beliebigen Typ verwenden:

%Vor%     
Tim Schmelter 15.06.2015 11:52
quelle
1

Wo ist meine Antwort? Ich habe es vor ungefähr einer Stunde geschrieben:

%Vor%

Beispiel:

    
Fabjan 15.06.2015 13:23
quelle
1
%Vor%     
Hussein Khalil 15.06.2015 11:42
quelle

Tags und Links