Personalmente, prefiero mis propias extensiones de idioma, que agrego o elimino a voluntad para la creación rápida de prototipos.
El siguiente es un ejemplo de cadenas.
//resides in IEnumerableStringExtensions.cs
public static class IEnumerableStringExtensions
{
public static IEnumerable<string> Append(this string[] arrayInitial, string[] arrayToAppend)
{
string[] ret = new string[arrayInitial.Length + arrayToAppend.Length];
arrayInitial.CopyTo(ret, 0);
arrayToAppend.CopyTo(ret, arrayInitial.Length);
return ret;
}
}
Es mucho más rápido que LINQ y Concat. Aún más rápido, está utilizando un IEnumerable
envoltorio de tipo personalizado que almacena referencias / punteros de matrices pasadas y permite recorrer toda la colección como si fuera una matriz normal. (Útil en HPC, Procesamiento de gráficos, Procesamiento de gráficos ...)
Tu codigo:
var someStringArray = new[]{"a", "b", "c"};
var someStringArray2 = new[]{"d", "e", "f"};
someStringArray.Append(someStringArray2 ); //contains a,b,c,d,e,f
Para ver el código completo y una versión genérica, consulte: https://gist.github.com/lsauer/7919764
Nota: Esto devuelve un objeto IEnumerable no extendido. Devolver un objeto extendido es un poco más lento.
Compilé tales extensiones desde 2002, con muchos créditos destinados a personas útiles en CodeProject y 'Stackoverflow'. Lo lanzaré en breve y pondré el enlace aquí.