Secara pribadi, saya lebih suka Ekstensi Bahasa saya sendiri, yang saya tambahkan atau hapus sesuka hati untuk pembuatan prototipe cepat.
Berikut ini adalah contoh untuk string.
//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;
}
}
Ini jauh lebih cepat daripada LINQ dan Concat. Lebih cepat lagi, menggunakan custom IEnumerableType-wrapper yang menyimpan referensi / pointer dari array yang dilewati dan memungkinkan perulangan seluruh koleksi seolah-olah itu adalah array normal. (Berguna dalam HPC, Pemrosesan Grafik, Pembuatan grafik ...)
Kode Anda:
var someStringArray = new[]{"a", "b", "c"};
var someStringArray2 = new[]{"d", "e", "f"};
someStringArray.Append(someStringArray2 ); //contains a,b,c,d,e,f
Untuk keseluruhan kode dan versi generik, lihat: https://gist.github.com/lsauer/7919764
Catatan: Ini mengembalikan objek IEnumerable tanpa ekstensi. Untuk mengembalikan objek yang diperluas sedikit lebih lambat.
Saya mengkompilasi ekstensi tersebut sejak 2002, dengan banyak kredit akan membantu orang-orang di CodeProject dan 'Stackoverflow'. Saya akan segera merilis ini dan meletakkan tautannya di sini.