Cast List to List dans .NET 2.0

Pouvez-vous lancer une List dans List ?

Je sais que je pourrais passer en revue et .ToSsortingng () la chose, mais un casting serait génial.

Je suis en C # 2.0 (donc pas de LINQ ).

.NET 2.0 a la méthode ConvertAll où vous pouvez passer dans une fonction de convertisseur:

 List l1 = new List(new int[] { 1,2,3 } ); List l2 = l1.ConvertAll(delegate(int i) { return i.ToSsortingng(); }); 

Mis à jour pour 2010

 List l1 = new List(new int[] { 1,2,3 } ); List l2 = l1.ConvertAll(x => x.ToSsortingng()); 

Est-ce que C # 2.0 est capable de faire List.Convert ? Si oui, je pense que votre meilleure hypothèse serait d’utiliser cela avec un délégué:

 List list = new List(); list.Add(1); list.Add(2); list.Add(3); list.Convert(delegate (int i) { return i.ToSsortingng(); }); 

Quelque chose dans ce sens.


Votez la réponse de Glenn, qui est probablement le bon code 😉

Vous pouvez utiliser:

 List items = new List(new int[] { 1,2,3 } ); List s = (from i in items select i.ToSsortingng()).ToList(); 

Vous ne seriez pas en mesure de le lancer directement car aucune dissortingbution explicite ou implicite n’existe de int en ssortingng, ce devrait être une méthode impliquant .ToSsortingng () telle que: –

 foreach (int i in intList) ssortingngList.Add(i.ToSsortingng()); 

Edit – ou comme d’autres l’ont fait remarquer avec brio, utilisez intList.ConvertAll (delegate (int i) {return i.ToSsortingng ();}); cependant, vous devez toujours utiliser .ToSsortingng () et c’est une conversion plutôt que un casting.

Vous devez créer une nouvelle liste. Les représentations binarys sous-jacentes de List et List sont totalement incompatibles – sur une plate-forme 64 bits, par exemple, les membres individuels n’ont même pas la même taille.

Il est théoriquement possible de traiter une List comme une List – cela vous amène dans les mondes passionnants de la covariance et de la contravariance, et n’est actuellement pas supporté par C # ou VB.NET.

result = listOfInt.Select(i => i.ToSsortingng(CultureInfo.InvariantCulture)).ToList()

remplacer les parameters result et listOfInt par vos parameters