2017-05-24 4 views
0

... andere als die Verwendung sortiert zurückzukehren: Array.Copy(originalArray, newArray) eine Kopie des Originals zu machen und mit dann: return Array.Sort (newArray) sortierten Array zu erhalten - ohne die Veränderung Original-Array, natürlich?Gibt es eine Verknüpfung Weg, um ein Array in C#

+6

LINQ hat eine 'OrderBy' Erweiterungsmethode das könnte sein, wonach du suchst. (Ich nehme an, Sie müssten '.ToArray()' aufrufen, wenn ein Array das ist, was Sie für die Ausgabe benötigen, also ist das vielleicht keine Abkürzung in Bezug auf die Codelänge.) – adv12

+0

War nicht unbedingt auf der Suche nach Speichern Ausgabe in neues Array, also danke! – PakiPat

Antwort

4

Ja, Sie können LINQ verwenden, dann in ein Array umwandeln zurück:

Zum Beispiel:

return array.OrderBy(o => o.Col).ToArray(); 
+0

Bevor ich dies als Antwort akzeptiere, würde ich gerne wissen, ob Sie wirklich das zugewiesene Array als das gleiche gemeint haben, auf dem die OrderBy betrieben wird. Ich denke auch, wir könnten einfach WhatEver auf der rechten Seite des equals-to zurückgeben, da ich nicht unbedingt das sortierte Array speichern möchte. – PakiPat

+0

Ja, ich denke, ich habe die "Ohne Änderung des ursprünglichen Array-Teils" falsch gelesen, ich werde den Zuweisungsteil entfernen – DNKROZ

4

So 2 Operationen, (1): Reihenfolge von und (2) auf neue Array kopieren. Ich würde sagen, dass so etwas wie dieses ist:

int[] ReturnSorted(int[] input) 
{ 
    return input.OrderBy((a)=>a).ToArray(); 
} 
+0

Ich mag das, aber ich hätte hinzufügen sollen "... und andere als eine benutzerdefinierte Methode erstellen" :) – PakiPat

+0

@PatrickGomes Offensichtlich brauchen Sie die Methode nicht; Sie könnten auch die One-Liner ... – atlaste

+0

Woops verwenden. Na sicher! Noob hier. :) – PakiPat

Verwandte Themen