Şahsen, hızlı prototipleme için eklediğim veya kaldırdığım kendi Dil Uzantılarımı tercih ediyorum.
Aşağıda dizelere bir örnek verilmiştir.
//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;
}
}
LINQ ve Concat'tan çok daha hızlıdır. Daha hızlı bir şekilde IEnumerable, geçirilen dizilerin referanslarını / işaretleyicilerini saklayan ve tüm koleksiyon üzerinde normal bir dizi gibi döngü oluşturmayı sağlayan özel bir Type-wrapper kullanıyor . (HPC, Grafik İşleme, Grafik oluşturma ...)
Senin kodun:
var someStringArray = new[]{"a", "b", "c"};
var someStringArray2 = new[]{"d", "e", "f"};
someStringArray.Append(someStringArray2 ); //contains a,b,c,d,e,f
Kodun tamamı ve genel sürüm için bkz. Https://gist.github.com/lsauer/7919764
Not: Bu genişletilmemiş bir IEnumerable nesnesi döndürür. Genişletilmiş bir nesneyi döndürmek biraz daha yavaştır.
Bu uzantıları 2002'den beri derledim, CodeProject ve 'Stackoverflow' konusunda çok sayıda krediye yardımcı oluyorum. Bunları kısa süre içinde yayınlayacağım ve bağlantıyı buraya koyacağım.