संपादित करें: यदि आप केवल एक का उपयोग कर रहे हैं List<>
और आपको केवल सूचकांक की आवश्यकता है, तो List.FindIndex
वास्तव में सबसे अच्छा तरीका है। मैं इस उत्तर को उन लोगों के लिए छोड़ दूंगा, जिन्हें कुछ अलग करने की जरूरत है (जैसे किसी के ऊपर IEnumerable<>
)।
ओवरलोड का उपयोग करें Select
जो एक इंडेक्स को विधेय में लेता है, इसलिए आप अपनी सूची को एक (इंडेक्स, वैल्यू) जोड़ी में बदलते हैं:
var pair = myList.Select((Value, Index) => new { Value, Index })
.Single(p => p.Value.Prop == oProp);
फिर:
Console.WriteLine("Index:{0}; Value: {1}", pair.Index, pair.Value);
या यदि आप केवल इंडेक्स चाहते हैं और आप इसे कई स्थानों पर उपयोग कर रहे हैं, तो आप आसानी से अपनी खुद की एक्सटेंशन विधि लिख सकते हैं, जो की तरह थी Where
, लेकिन मूल वस्तुओं को वापस करने के बजाय, यह उन वस्तुओं के इंडेक्स को लौटाता है जो विधेय से मेल खाते थे।
int index
?