2011-08-13 35 views
22

मैं और अधिक तो एक शर्त इस तरह के साथ पाश कर सकते हैं:foreach पाश

foreach (var i in arr and while condition1 && condition2 && ... && conditionN) { 
} 

लेकिन break; का उपयोग किए बिना:

for (int i = 0; condition1 && condition2 && ... && conditionN ; i++) { 

} 

वहाँ foreach का उपयोग कर यह करने के लिए कोई तरीका है?

मुझे गणना करने के लिए इसकी आवश्यकता है और यदि मेरी हालत सत्य नहीं है तो मैं पुनरावृत्ति जारी रखना नहीं चाहता हूं।

+0

मैं कोई भी आप उन सभी स्थितियों के लिए एक विधि का उपयोग का सुझाव दिया हैरान हूँ। –

+0

@ एंड टर्नर: क्या आप समझा सकते हैं? – Naor

उत्तर

45

आप उपयोग कर सकते हैं Enumerable.TakeWhile Extension Method:

foreach (var i in arr.TakeWhile(j => condition1 && ... && conditionN)) 
{ 
    // do something 
} 

यह मोटे तौर पर के बराबर है:

foreach (var j in arr) 
{ 
    if (!(condition1 && ... && conditionN)) 
    { 
     break; 
    } 
    var i = j; 
    // do something 
} 
+1

अच्छा, उस बारे में कभी नहीं पता था! –

संबंधित मुद्दे