首页 / .NET / 正文

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

7165 发布于: 2018-01-10 读完约需3分钟

.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>如何实现动态LINQ排序?

下一篇: .NET[C#]LINQ将List<string>集合使用连接符连接成单个字符串?

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

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册