2010-03-25 43 views

回答

12

有一個在BCL默認提供任何方法,但它是直截了當地寫一個具有相同的行爲(檢查略去了參數)

public static void ForEach<T>(this IEnumerable<T> enumerable, Action<T> action) { 
    foreach (var cur in enumerable) { 
    action(cur); 
    } 
} 

使用情況下的擴展方法

ObservableCollection<Student> col = ...; 
col.ForEach(x => Console.WriteLine(x.Name)); 
+0

感謝您的快速回復,這很好。 但我想知道一個謂詞如何作爲一個動作工作? predicated:x => Console.WriteLine(x.Name) – 2010-03-25 21:17:41

+0

早些時候我正在使用像這樣, statuses.ToList()。ForEach(x => x.IsHidden = true); 我認爲這只是內存消耗。 – 2010-03-25 21:20:31

4
public static class EnumerableExtensions 
{ 
    public static void ForEach<T>(this IEnumerable<T> enumerable, Action<T> action) 
    { 
     foreach (var e in enumerable) 
     { 
      action(e); 
     } 
    } 
} 
0
observableCollection.ToList().ForEach(item => /* do something */);