EDIT: Jika Anda hanya menggunakan List<>dan Anda hanya perlu indeks, maka List.FindIndexmemang 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 Selectyang 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?