小编Cal*_*kie的帖子

尝试将对象附加到foreach循环中的Enumerable

我正在做一个C#练习来创建一个操作,该操作接受一个集合,对集合中的每个对象执行一个函数,并返回一组修改过的对象.

我的代码目前如下:

public static IEnumerable<U> Accumulate<T, U>(this IEnumerable<T> collection, Func<T, U> func)
{
    IEnumerable<U> output = Enumerable.Empty<U>();

    foreach (T item in collection)
    {
        output.Append(func(item));
    }

    return output;
}
Run Code Online (Sandbox Code Playgroud)

这只是返回一个空集合,我不知道为什么.

我在另一个线程中看到这种方法后尝试在foreach中创建该项的副本,如下所示:

foreach (T item in collection)
    {
        U copy = func(item);
        output.Append(copy);
    }
Run Code Online (Sandbox Code Playgroud)

但这并没有解决任何问题.

我做了一些研究,但实际上找不到任何正如我在这里尝试做的那样的例子.我读了一些关于闭包的东西,但是不能真正理解它,因为我是C#的新手.

c# iteration foreach append

4
推荐指数
1
解决办法
222
查看次数

标签 统计

append ×1

c# ×1

foreach ×1

iteration ×1