संभव डुप्लिकेट का उपयोग कर अभिव्यक्ति:
Why is there not a ForEach extension method on the IEnumerable interface?लैम्ब्डा Foreach खण्ड
संपादित
संदर्भ के लिए, ब्लॉग पोस्ट जो eric टिप्पणी में करने के लिए referrrred है
http://blogs.msdn.com/ericlippert/archive/2009/05/18/foreach-vs-foreach.aspx
एक जिज्ञासा की मूल
अधिक मुझे लगता है लेकिन सी # विशिष्टता savants के लिए एक ...
ऐसा क्यों है कि foreach() खंड काम नहीं करता है (या नहीं है उपलब्ध) IQueryable/IEnumerable परिणाम सेट पर उपयोग के लिए ...
आपको पहले अपने परिणाम ToList() या ToArray() को परिवर्तित करना होगा, संभवतः सी # iterumerables बनाम सी # को एक तकनीकी सीमा है। सूचीबद्ध करता है ... क्या यह Inumerables/IQuerable संग्रहों के डिफरर्ड निष्पादन के साथ कुछ करना है। उदा।
var userAgentStrings = uasdc.UserAgentStrings
.Where<UserAgentString>(p => p.DeviceID == 0 &&
!p.UserAgentString1.Contains("msie"));
//WORKS
userAgentStrings.ToList().ForEach(uas => ProcessUserAgentString(uas));
//WORKS
Array.ForEach(userAgentStrings.ToArray(), uas => ProcessUserAgentString(uas));
//Doesn't WORK
userAgentStrings.ForEach(uas => ProcessUserAgentString(uas));
मैं 'ForEach (uac => ProcessUserAgentString (uas))' 'EEach (ProcessUserAgentString) 'के रूप में लिखूंगा। –
प्रत्येक लूप के लिए पारंपरिक के साथ क्या समस्या है? foreach (UserAgentStrings में var uas) ProcessUserAgentString (uas); – Dario
कोई समस्या नहीं है ...जैसे मैंने कहा, यह एक उत्सुकता थी कि सम्मेलन Arrays/सूचियों पर उपयोग करने के लिए क्यों उपलब्ध था, लेकिन IQueryables/IEnumerables पर नहीं और जैसे एरिक लिपर्ट ने नीचे बताया, यह देव टीम द्वारा पूरी तरह से दार्शनिक पसंद है, न कि तकनीकी कारणों से –