DÜZENLEME: Yalnızca a kullanıyorsanız List<>
ve yalnızca dizine ihtiyacınız varsa , o List.FindIndex
zaman gerçekten en iyi yaklaşımdır. Bu cevabı farklı bir şeye ihtiyaç duyanlar için burada bırakacağım (örneğin herhangi birinin üstünde IEnumerable<>
).
Select
Yüklemede bir dizini alan aşırı yükü kullanın , böylece listenizi bir (dizin, değer) çiftine dönüştürürsünüz:
var pair = myList.Select((Value, Index) => new { Value, Index })
.Single(p => p.Value.Prop == oProp);
Sonra:
Console.WriteLine("Index:{0}; Value: {1}", pair.Index, pair.Value);
Veya yalnızca dizini istiyorsanız ve bunu birden çok yerde kullanıyorsanız, kendi uzantı yönteminizi kolayca yazabilirsiniz Where
, ancak orijinal öğeleri iade etmek yerine, yüklemle eşleşen bu öğelerin dizinlerini döndürdü.
int index
?