Ich habe das List<string>
:
IList<string> ListaServizi = new List<string>();
Wie kann ich es alphabetisch und aufsteigend bestellen?
Ich habe das List<string>
:
IList<string> ListaServizi = new List<string>();
Wie kann ich es alphabetisch und aufsteigend bestellen?
Antworten:
ListaServizi = ListaServizi.OrderBy(q => q).ToList();
IList<string>
. Dieser Code würde tatsächlich wie geschrieben funktionieren, im Gegensatz zu den Antworten, mit denen mehr positive Stimmen erhalten wurden ListaServizi.Sort()
. Ich sage nicht, dass dies die Lösung ist, die ich wählen würde, aber dies war tatsächlich die einzig richtige Antwort, als ich meine Antwort veröffentlichte.
.Sort
können, warum nicht ?
List
. Und die mit dieser Antwort verbundenen Kosten sind nicht trivial und auch unnötig. Es gewinnt buchstäblich nichts . Es erhöht die Komplexität des Codes, ist weniger präzise, weniger effizient und bietet hier buchstäblich nur Nachteile.
Sie können Sortieren verwenden
List<string> ListaServizi = new List<string>() { };
ListaServizi.Sort();
Andere Antworten sind richtig Sort
, aber sie scheinen die Tatsache übersehen zu haben, dass der Speicherort als eingegeben ist IList<string
. Sort
ist nicht Teil der Schnittstelle.
Wenn Sie wissen, dass dies ListaServizi
immer ein enthält List<string>
, können Sie entweder den deklarierten Typ ändern oder eine Besetzung verwenden. Wenn Sie sich nicht sicher sind, können Sie den Typ testen:
if (typeof(List<string>).IsAssignableFrom(ListaServizi.GetType()))
((List<string>)ListaServizi).Sort();
else
{
//... some other solution; there are a few to choose from.
}
Vielleicht idiomatischer:
List<string> typeCheck = ListaServizi as List<string>;
if (typeCheck != null)
typeCheck.Sort();
else
{
//... some other solution; there are a few to choose from.
}
Wenn Sie wissen, dass dies ListaServizi
manchmal eine andere Implementierung von enthält IList<string>
, hinterlassen Sie einen Kommentar, und ich füge ein oder zwei Vorschläge zum Sortieren hinzu.
.Sort
msdn.microsoft.com/en-us/library/b0zbh7b6%28v=vs.90%29.aspx ?