संभव डुप्लिकेट: IEnumerable के लिए
LINQ equivalent of foreach for IEnumerable<T>मौजूदा LINQ एक्सटेंशन विधि समानांतर के समान है। के लिए?
LINQ विस्तार तरीके हैं बहुत आसान है ... लेकिन ऐसा नहीं है कि उपयोगी अगर सभी आप क्या करना चाहते में प्रत्येक आइटम के लिए कुछ गणना लागू है कुछ भी वापस किए बिना गणना। तो मैं सोच रहा था कि शायद मुझे सही विधि याद आ रही है, या यदि यह वास्तव में अस्तित्व में नहीं है क्योंकि मैं उपलब्ध है तो एक अंतर्निहित संस्करण का उपयोग करना चाहूंगा ... लेकिन मुझे कोई नहीं मिला :-)
मैं शपथ ले सकता था कि कहीं भी एक विधि है, लेकिन मुझे अभी तक यह नहीं मिला है। इस बीच, मैं इस मामले में अपने खुद के संस्करण लिख था कि यह किसी और के लिए उपयोगी होता है:
using System.Collections;
using System.Collections.Generic;
public delegate void Function<T>(T item);
public delegate void Function(object item);
public static class EnumerableExtensions
{
public static void For(this IEnumerable enumerable, Function func)
{
foreach (object item in enumerable)
{
func(item);
}
}
public static void For<T>(this IEnumerable<T> enumerable, Function<T> func)
{
foreach (T item in enumerable)
{
func(item);
}
}
}
उपयोग है:
myEnumerable.For<MyClass>(delegate(MyClass item) { item.Count++; });
सीएफ एरिक Lippert का जवाब यहाँ: http://blogs.msdn.com/ericlippert/archive/2009 /05/18/foreach-vs-foreach.aspx – Benjol