que tienen una List<int>
de enteros (1 - 3 - 4
por ejemplo) separado?Convertir <int> a la cadena de valores de coma
Por ejemplo, la salida debe ser:
string values = "1,3,4";
que tienen una List<int>
de enteros (1 - 3 - 4
por ejemplo) separado?Convertir <int> a la cadena de valores de coma
Por ejemplo, la salida debe ser:
string values = "1,3,4";
Otra solución sería el uso de Aggregate. Esto se sabe que es mucho más lento luego las otras soluciones proporcionadas!
var ints = new List<int>{1,2,3,4};
var strings =
ints.Select(i => i.ToString(CultureInfo.InvariantCulture))
.Aggregate((s1, s2) => s1 + ", " + s2);
Consulte los comentarios a continuación por qué no debe usarlo. Use String.Join
o StringBuilder
en su lugar.
var ints = new List<int>{1,3,4};
var stringsArray = ints.Select(i=>i.ToString()).ToArray();
var values = string.Join(",", stringsArray);
Gracias Albin. E para la tarea de reversión, a partir de una cadena de números enteros con comas, necesito obtener una lista
En .NET 4 ['String.Join'] (http://msdn.microsoft.com/en-us/library/dd992421.aspx) tiene una sobrecarga tomando un' IEnumerable
@Ciupaz, para la tarea inversa, use ['String.Split()'] (http://msdn.microsoft.com/en-us/library/system.string.split.aspx). –
public static string ToCommaString(this List<int> list)
{
if (list.Count <= 0)
return ("");
if (list.Count == 1)
return (list[0].ToString());
System.Text.StringBuilder sb = new System.Text.StringBuilder(list[0].ToString());
for (int x = 1; x < list.Count; x++)
sb.Append("," + list[x].ToString());
return (sb.ToString());
}
public static List<int> CommaStringToIntList(this string _s)
{
string[] ss = _s.Split(',');
List<int> list = new List<int>();
foreach (string s in ss)
list.Add(Int32.Parse(s));
return (list);
}
Uso:
String s = "1,2,3,4";
List<int> list = s.CommaStringToIntList();
list.Add(5);
s = list.ToCommaString();
s += ",6";
list = s.CommaStringToIntList();
¿Por qué publicaste esta solución alternativa, cuando ya se habían dado algunas soluciones muy compactas que utilizaban string.Join()? –
-1 Una solución notoriamente mala para crear cadenas como esta (especialmente cuando la lista es larga). String.Join o StringBuilder son el camino a seguir. Triste por el desbordamiento de pila que un OP de baja calidad ni siquiera sabe cómo aceptar la mejor respuesta. –
@GertArnold Estoy de acuerdo contigo. Solo quería mostrar otra solución y olvidé mencionar cualquier actuación. Traté de eliminar esta respuesta, pero no puedo. Actualizaré la respuesta para no usarla. –
Eso es muy generoso. Se eliminó el voto negativo. –