Pessoalmente, prefiro minhas próprias Extensões de Idioma, que adiciono ou removo à vontade para prototipagem rápida.
A seguir, um exemplo para seqüências de caracteres.
//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;
}
}
É muito mais rápido que o LINQ e o Concat. Mais rápido ainda, está usando um costumeIEnumerable
invólucro de tipo que armazena referências / ponteiros de matrizes passadas e permite fazer um loop por toda a coleção como se fosse uma matriz normal. (Útil em HPC, Processamento gráfico, Renderização gráfica ...)
Seu código:
var someStringArray = new[]{"a", "b", "c"};
var someStringArray2 = new[]{"d", "e", "f"};
someStringArray.Append(someStringArray2 ); //contains a,b,c,d,e,f
Para o código inteiro e uma versão genérica, consulte: https://gist.github.com/lsauer/7919764
Nota: Isso retorna um objeto IEnumerable não estendido. Retornar um objeto estendido é um pouco mais lento.
Compilei essas extensões desde 2002, com muitos créditos destinados a pessoas úteis no CodeProject e 'Stackoverflow'. Os lançarei em breve e colocarei o link aqui em cima.