Pregunta

¿Puedes lanzar un List<int> a List<string> ¿de alguna manera?

Sé que podría recorrer y .ToString() la cosa, pero un elenco sería increíble.

Estoy en C# 2.0 (así que no LINQ).

¿Fue útil?

Solución

.NET 2.0 tiene la ConvertAll método donde puede pasar una función de conversión:

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

Otros consejos

Actualizado para 2010

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

¿C# 2.0 es capaz de hacer List<T>.Convert?Si es así, creo que lo mejor sería usarlo con un delegado:

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

Algo parecido a eso.


Vota a favor de la respuesta de Glenn, que probablemente sea el código correcto ;-)

No podrías convertirlo directamente ya que no existe una conversión explícita o implícita de int a string, sería tener ser un método que involucra .ToString() como: -

foreach (int i in intList) stringList.Add(i.ToString());

Editar - o como otros han señalado de manera bastante brillante, use intList.ConvertAll(delegate(int i) { return i.ToString();});, sin embargo, claramente todavía tienes que usar .ToString() y es una conversión en lugar de una conversión.

Puedes usar:

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

Tienes que crear una nueva lista.Las representaciones de bits subyacentes de List<int> y List<string> son completamente incompatibles: en una plataforma de 64 bits, por ejemplo, los miembros individuales ni siquiera son del mismo tamaño.

Teóricamente es posible tratar una List<string> como un List<object> -- esto lo lleva a los apasionantes mundos de la covarianza y la contravarianza, y actualmente no es compatible con C# o VB.NET.

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

reemplace el resultado de los parámetros y listOfInt a sus parámetros

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top