J'ai une boucle pour la boucle où je veux commander le nom alphabétiquement regarder comment faire cela, je me demandais même si je pouvais utiliser Linq Orderby à l'intérieur de la Forloop? P> < / p>
4 Réponses :
Essayez ceci:
List<Item> myItems = new List<Item>();
//load myitems
foreach(Item i in myItems.OrderBy(t=>t.name))
{
//Whatever
}
Une question légèrement noobaine, l'Orderby exécutera-t-il sur chaque itération de la boucle, provoquant ainsi une performance frappée?
Non, juste la seule fois
Pour tous ceux qui se demandent pourquoi cela ne fonctionne pas: Vérifiez si vous avez inclus le à l'aide de System.Linq; code> ligne.
foreach code> nécessite un iEnumerable iEnumerable IEnumerable
new string[] { "d", "c", "b", "a" }
.OrderBy(s => s)
.ToList()
.ForEach(s => MessageBox.Show(s));
Vous n'avez pas besoin d'une boucle du tout. Utilisez simplement LINQ:
List<MyClass> aList = new List<MyClass>(); // add data to aList aList.OrderBy(x=>x.MyStringProperty);
Qu'essayez-vous d'accomplir exactement?
Une boucle de cela? Une boucle de cordes? Vous voulez commander ces chaînes par nom? Si oui, faites juste votrelist.orderby (); Sinon, donnez-nous plus d'informations. Le code est le bienvenu aussi.