Ho un ciclo for in cui voglio OrderBy il nome in ordine alfabeticoC'è un modo di usare orderby in un C# forloop?
a
b
c
d
cercando come fare questo, si chiedeva anche se potevo usare LINQ orderby all'interno del forloop?
Ho un ciclo for in cui voglio OrderBy il nome in ordine alfabeticoC'è un modo di usare orderby in un C# forloop?
a
b
c
d
cercando come fare questo, si chiedeva anche se potevo usare LINQ orderby all'interno del forloop?
Prova questa:
List<Item> myItems = new List<Item>();
//load myitems
foreach(Item i in myItems.OrderBy(t=>t.name))
{
//Whatever
}
una domanda un po 'noobish, eseguirà l'ordinamento su ogni iterazione del ciclo causando un colpo di prestazioni? – nikolifish
No, solo la volta –
Per tutti quelli che si chiedono perché questo non funziona: controlla se hai incluso la riga 'using System.Linq;'. – z00l
foreach
ha bisogno di un IEnumerable<T>
LINQ ordine-by prende in una IEnumerable<T>
e ti dà un ordinato IEnumerable<T>
. Quindi sì, dovrebbe funzionare.
new string[] { "d", "c", "b", "a" }
.OrderBy(s => s)
.ToList()
.ForEach(s => MessageBox.Show(s));
Non è necessario un ciclo. Basta usare LINQ:
List<MyClass> aList = new List<MyClass>();
// add data to aList
aList.OrderBy(x=>x.MyStringProperty);
Cosa stai cercando di realizzare esattamente? – R0MANARMY
Un ciclo di quello? Un loop di stringhe? Vuoi ordinare queste corde per nome? Se è così, basta fare yourList.OrderBy(); In caso contrario, fornirci ulteriori informazioni. Anche il codice è benvenuto – goenning