जितना संभव हो सके इसे साफ करने के लिए मैं संकलक को सभी काम करने देना चाहता हूं। कोई जाति नहीं है (इसलिए इसका वास्तव में प्रकार-सुरक्षित)। किसी भी तीसरे पक्ष के पुस्तकालय (System.Linq) का उपयोग नहीं किया जाता है (कोई रनटाइम ओवरहेड)।
public static IEnumerable<T> GetEnumerable<T>(this T[] arr)
{
return arr;
}
// और कोड का उपयोग करने के लिए:
String[] arr = new String[0];
arr.GetEnumerable().GetEnumerator()
यह कुछ संकलक जादू का लाभ उठाता है जो सब कुछ साफ रखता है।
ध्यान देने वाली बात यह है कि मेरा उत्तर एकमात्र उत्तर है जो संकलन-समय जाँच करेगा।
किसी भी अन्य समाधान के लिए यदि "गिरफ्तारी" का प्रकार बदलता है, तो कॉलिंग कोड संकलन करेगा, और रनटाइम में विफल हो जाएगा, जिसके परिणामस्वरूप रनटाइम बग होगा।
मेरे जवाब से कोड संकलित नहीं होगा और इसलिए मेरे पास अपने कोड में बग को शिपिंग करने की कम संभावना है, क्योंकि यह मुझे संकेत देगा कि मैं गलत प्रकार का उपयोग कर रहा हूं।