我编写了一个 LINQ 语句,将枚举名称列表与字典中存在的任何条目相匹配。然后我想调用一个函数并将匹配的字符串传递给它。我有这个并且它可以工作但是它闻起来有点味道,特别是必须从我的函数返回一个字符串。
var pas = Enum.GetNames(typeof(enums))
.Select(x => { return DoSomething(x); }).ToList();
DoSomething
看起来像:
private string DoSomething(string name)
{
// do stuff
return name;
}
是否可以重写它以使函数无效?
最佳答案
Linq是Selecting data,因为void没有数据所以不能用。
但是有 2 种方法是为调用值列表上的函数而设计的
来自列表
Enum.GetNames(typeof(enums)).ToList().ForEach(DoSomething)
来自并行
Parallel.ForEach(Enum.GetNames(typeof(enums)), DoSomething)
第二个将使用多线程异步执行它们
关于c# - 如何在没有返回值的情况下从 Linq 语句调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39144785/