.NET[C#]LINQ中IEnumerable<T>如何实现ForEach的遍历?
问题描述
比如有如下的伪代码:
IEnumerable<Item> items = GetItems();
items.ForEach(i => i.DoStuff());
如何实现 items.ForEach
的遍历呢?
方案一
public static void ForEach<T>(this IEnumerable<T> enumeration, Action<T> action)
{
foreach(T item in enumeration)
{
action(item);
}
}
调用方法:
items.ToList().ForEach(i => i.DoStuff());
方案二
public static class Enumerables
{
public static void ForEach<T>(this IEnumerable<T> @this, Action<T> action)
{
foreach (T item in @this)
{
action(item);
}
}
}
方案三
public static IEnumerable<T> ForEach<T>(this IEnumerable<T> enumeration, Action<T> action)
{
foreach (T item in enumeration)
{
action(item);
yield return item;
}
}
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册