11 Stimmen

Gibt es eine Möglichkeit der Verwendung von orderby in einer forloop C#?

Ich habe eine for-Schleife, wo ich den Namen alphabetisch bestellen möchte

a
b
c
d

suchen, wie dies zu tun, fragte sich sogar, wenn ich linq orderby innerhalb der forloop verwenden könnte?

1 Stimmen

Was genau wollen Sie erreichen?

0 Stimmen

Eine Schleife davon? Eine Schleife aus Saiten? Möchten Sie diese Zeichenketten nach Namen ordnen? Wenn ja, machen Sie einfach yourList.OrderBy(); Wenn nicht, geben Sie uns mehr Informationen. Code ist auch willkommen.

35voto

Abe Miessler Punkte 78979

Versuchen Sie dies:

List<Item> myItems = new List<Item>();
//load myitems
foreach(Item i in myItems.OrderBy(t=>t.name))
{
 //Whatever
}

3 Stimmen

Eine etwas noobish Frage, wird die orderby bei jeder Iteration der Schleife ausgeführt, wodurch eine Leistung Hit?

3 Stimmen

Nein, nur das eine Mal

5 Stimmen

Für alle, die sich fragen, warum das nicht funktioniert: Prüfen Sie, ob Sie die using System.Linq; Linie.

2voto

Pedro Punkte 382
new string[] { "d", "c", "b", "a" }
    .OrderBy(s => s)
    .ToList()
    .ForEach(s => MessageBox.Show(s));

1voto

awrigley Punkte 13241

Sie brauchen überhaupt keine Schleife. Verwenden Sie einfach LINQ:

List<MyClass> aList = new List<MyClass>();

// add data to aList

aList.OrderBy(x=>x.MyStringProperty);

0voto

Ben Voigt Punkte 268424

foreach braucht eine IEnumerable<T> LINQ order-by nimmt in einer IEnumerable<T> und gibt Ihnen eine sortierte IEnumerable<T> . Also ja, es sollte funktionieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X