如何使用函数作为参数迭代 List<string> 传回每个字符串?

How do I iteratate a List<string> passing back each string using a Func as a parameter?

鉴于:

public void DoSomething(Func<List<string>, string> act){
   foreach(var thing in [TheListPassedIn]){
      act(thing);
   }
}

获取名为 "act" 的参数列表的可寻址性的正确代码是什么?

您没有将字符串列表作为参数传递给该方法。你实际上传递了一个函数,它有一个 List 作为输入参数和 returns 一个字符串。没有具体涉及的字符串列表。

我认为你在这里混淆了一些东西。您的方法确实获得了一个参数,该参数是从列表到字符串的转换。这里根本没有清单。转换做了一些事情,但你必须在你的 DoSomething 方法中提出列表,并且可能以你的列表作为参数调用转换。如果这不是工作流程,那么您可能以错误的方式定义了您的方法!

您可以分别传入列表和函数,并使用 Linq 轻松创建新列表:

public List<string> ApplyFuncToEachItem(List<int> myList, Func<int, string> myFunc)
{
    return myList.Select(myFunc).ToList();
}

示例:

var numbers = Enumerable.Range(0,10).ToList();
var myListOfStrings = ApplyFuncToEachItem(numbers, n => "bla " + n.ToString());