Hanya dalam kasus Anda menggunakan .NET 2.0 dan tidak memiliki akses ke LINQ:
static T First<T>(IEnumerable<T> items)
{
using(IEnumerator<T> iter = items.GetEnumerator())
{
iter.MoveNext();
return iter.Current;
}
}
Ini harus melakukan apa yang Anda cari ... menggunakan generik sehingga Anda mendapatkan item pertama pada semua jenis IEnumerable.
Sebut seperti ini:
List<string> items = new List<string>() { "A", "B", "C", "D", "E" };
string firstItem = First<string>(items);
Atau
int[] items = new int[] { 1, 2, 3, 4, 5 };
int firstItem = First<int>(items);
Anda dapat memodifikasinya dengan mudah untuk meniru IEnumerable.ElementAt () metode ekstensi .NET 3.5:
static T ElementAt<T>(IEnumerable<T> items, int index)
{
using(IEnumerator<T> iter = items.GetEnumerator())
{
for (int i = 0; i <= index; i++, iter.MoveNext()) ;
return iter.Current;
}
}
Menyebutnya seperti ini:
int[] items = { 1, 2, 3, 4, 5 };
int elemIdx = 3;
int item = ElementAt<int>(items, elemIdx);
Tentu saja jika Anda lakukan memiliki akses ke LINQ, maka ada banyak jawaban yang baik diposting sudah ...