Olabildiğince temiz hale getirmek için derleyicinin tüm işi yapmasına izin vermeyi seviyorum. Yayın yok (bu yüzden aslında tür açısından güvenli). Hiçbir üçüncü taraf Kitaplığı (System.Linq) kullanılmaz (Çalışma zamanı ek yükü yoktur).
public static IEnumerable<T> GetEnumerable<T>(this T[] arr)
{
return arr;
}
// Ve kodu kullanmak için:
String[] arr = new String[0];
arr.GetEnumerable().GetEnumerator()
Bu, her şeyi temiz tutan bazı derleyici sihrinden yararlanır.
Dikkat edilmesi gereken diğer bir nokta ise, derleme zamanı kontrolünü yapacak tek cevabımın cevabım olmasıdır.
Diğer çözümlerden herhangi biri için "arr" türü değişirse, kod çağırma derlenir ve çalışma zamanında başarısız olur, bu da bir çalışma zamanı hatasıyla sonuçlanır.
Cevabım, kodun derlenmemesine neden olacak ve bu nedenle, yanlış türü kullandığımı bana bildireceği için kodumdaki bir hatayı gönderme şansım daha az olacak.