.NET[C#]LINQ中IEnumerable<T>如何实现ForEach的遍历?

.NET 作者: Rector 755阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

.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;
    }
}

阅读了该文章的人还浏览了...

本文永久链接码友网 » .NET[C#]LINQ中IEnumerable<T>如何实现ForEach的遍历?

发布于: 2018-01-10 09:36:51
分享扩散: