ज़रूर, यह बहुत आसान है:
var index = list.Select((value, index) => new { value, index = index + 1 })
.Where(pair => SomeCondition(pair.value))
.Select(pair => pair.index)
.FirstOrDefault() - 1;
अगर यह कुछ भी मिल रहा है, या अन्यथा सूचकांक वापस करेगा। +1 और -1 उस मामले के लिए व्यवहार प्राप्त करना है जहां कोई मिलान नहीं है। यदि आप पता था कि वहाँ हमेशा एक मैच होगा, यह आसान हो जाएगा:
var index = list.Select((value, index) => new { value, index })
.Where(pair => SomeCondition(pair.value))
.Select(pair => pair.index)
.FirstOrDefault();
आप उस बिंदु से सूची के बाकी प्राप्त करने के लिए खुश हैं, तो निश्चित रूप से SkipWhile
अपने दोस्त, के रूप में क्रिस ने उल्लेख किया है । यदि सूची के बाकी और मूल सूचकांक चाहते हैं, इतना आसान भी है:
var query = list.Select((value, index) => new { value, index })
.SkipWhile(pair => !SomeCondition(pair.value))
है कि आप SomeCondition
मिलान पहले मूल्य से { value, index }
जोड़े का एक अनुक्रम दे देंगे।
स्रोत
2010-11-02 06:21:50
+1 यह उल्लेख करने के लिए कि वह शायद 'SkipWhile' का उपयोग करना चाहता है, क्योंकि इंडेक्स ढूंढना और फिर' Skip' को कॉल करना क्वेरी को दो बार – Gabe
बताता है तो बंद करें ... अब मैं एक काउंटर, यानी सूची के साथ संयोजन के दौरान SkipWhile का उपयोग करना चाहता हूं। SkipWhile (myBusinessLogicCondition && list.Count - SkipIndex> someXnumber); – user494352
उपयोगकर्ता 4 9 4352: ऐसा लगता है कि आप जॉन की सूची देखना चाहते हैं। चयन करें()। SkipWhile() 'अपने पोस्ट के अंत में जवाब दें। – Gabe