我正在做一个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#的新手.