Un escalable y segura implementación de una cadena numerable genérica se unen para .NET 3.5. El uso de iteradores es para que el valor de la cadena de unión no quede bloqueado al final de la cadena. Funciona correctamente con 0, 1 y más elementos:
public static class StringExtensions
{
public static string Join<T>(this string joinWith, IEnumerable<T> list)
{
if (list == null)
throw new ArgumentNullException("list");
if (joinWith == null)
throw new ArgumentNullException("joinWith");
var stringBuilder = new StringBuilder();
var enumerator = list.GetEnumerator();
if (!enumerator.MoveNext())
return string.Empty;
while (true)
{
stringBuilder.Append(enumerator.Current);
if (!enumerator.MoveNext())
break;
stringBuilder.Append(joinWith);
}
return stringBuilder.ToString();
}
}
Uso:
var arrayOfInts = new[] { 1, 2, 3, 4 };
Console.WriteLine(",".Join(arrayOfInts));
var listOfInts = new List<int> { 1, 2, 3, 4 };
Console.WriteLine(",".Join(listOfInts));
disfrutar!
¿Qué versión de C#/.NET está utilizando? –
Estoy usando .NET 3.5 –
Posible duplicado de http://stackoverflow.com/questions/3211422/linq-convert-a-listint-to-a-joined-string-of-ints – goodeye