2010-03-25 35 views

Trả lời

12

Không có phương pháp có sẵn theo mặc định trong BCL nhưng nó thẳng về phía trước để viết một phương pháp mở rộng trong đó có các hành vi tương tự (lập luận việc kiểm tra bỏ qua cho ngắn gọn)

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

Sử dụng trường hợp

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

cảm ơn bạn đã trả lời nhanh, điều này rất hữu ích. nhưng tôi muốn biết một điều rằng cách biến vị ngữ hoạt động như một hành động? được xác định trước: x => Console.WriteLine (x.Name) –

+0

trước đó tôi đã sử dụng như thế này, statuses.ToList(). ForEach (x => x.IsHidden = true); và tôi nghĩ đó chỉ là bộ nhớ tiêu thụ. –

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 */); 
Các vấn đề liên quan