EDIT: Jika Anda hanya menggunakan List<>
dan Anda hanya perlu indeks, maka List.FindIndex
memang pendekatan yang terbaik. Saya akan meninggalkan jawaban ini di sini untuk mereka yang membutuhkan sesuatu yang berbeda (misalnya di atas apa pun IEnumerable<>
).
Gunakan kelebihan Select
yang mengambil indeks dalam predikat, sehingga Anda mengubah daftar Anda menjadi pasangan (indeks, nilai):
var pair = myList.Select((Value, Index) => new { Value, Index })
.Single(p => p.Value.Prop == oProp);
Kemudian:
Console.WriteLine("Index:{0}; Value: {1}", pair.Index, pair.Value);
Atau jika Anda hanya menginginkan indeks dan Anda menggunakannya di banyak tempat, Anda dapat dengan mudah menulis metode ekstensi Anda sendiri yang seperti itu Where
, tetapi alih-alih mengembalikan item asli, itu mengembalikan indeks item-item yang cocok dengan predikat.
int index
?