J'ai ceci List<string>
:
IList<string> ListaServizi = new List<string>();
Comment puis-je le commander par ordre alphabétique et croissant?
J'ai ceci List<string>
:
IList<string> ListaServizi = new List<string>();
Comment puis-je le commander par ordre alphabétique et croissant?
Réponses:
ListaServizi = ListaServizi.OrderBy(q => q).ToList();
IList<string>
. Ce code fonctionnerait en fait comme écrit, contrairement aux réponses qui ont reçu plus de votes positifs avec ListaServizi.Sort()
. Je ne dis pas que c'est la solution que je choisirais, mais c'était en fait la seule bonne réponse lorsque j'ai publié ma réponse.
.Sort
, alors pourquoi ne pas le faire.
List
. Et le coût associé à cette réponse est non négligeable et également inutile. Il ne gagne littéralement rien . Cela ajoute de la complexité au code, c'est moins concis, c'est moins efficace, il n'y a littéralement que des inconvénients ici.
Vous pouvez utiliser Trier
List<string> ListaServizi = new List<string>() { };
ListaServizi.Sort();
D'autres réponses sont correctes à suggérer Sort
, mais elles semblent avoir manqué le fait que l'emplacement de stockage est tapé comme IList<string
. Sort
ne fait pas partie de l'interface.
Si vous savez qu'il ListaServizi
contiendra toujours un List<string>
, vous pouvez soit changer son type déclaré, soit utiliser un cast. Si vous n'êtes pas sûr, vous pouvez tester le type:
if (typeof(List<string>).IsAssignableFrom(ListaServizi.GetType()))
((List<string>)ListaServizi).Sort();
else
{
//... some other solution; there are a few to choose from.
}
Peut-être plus idiomatique:
List<string> typeCheck = ListaServizi as List<string>;
if (typeCheck != null)
typeCheck.Sort();
else
{
//... some other solution; there are a few to choose from.
}
Si vous savez que cela ListaServizi
contiendra parfois une implémentation différente de IList<string>
, laissez un commentaire et j'ajouterai une suggestion ou deux pour le trier.
.Sort
msdn.microsoft.com/en-us/library/b0zbh7b6%28v=vs.90%29.aspx ?