c# - 如何在没有返回值的情况下从 Linq 语句调用函数?

标签 c# linq

我编写了一个 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/

相关文章:

c# - 双重使用 C# 迭代器工作意外

c# - 更改列表中的项目位置

c# - 无论如何在 linq to entities 查询中生成自定义 sql?

c# - c# 中的 List<T> 和 List(Of T) 有什么区别

c# - 以编程方式更改 Windows 10 UWP App 中的主题

c# - 将 C++ 转换为 C#

c# - Xamarin 页面 c# 中的自定义事件

c# - 如何为 ASP.NET Core 2 中的所有 Razor 页面添加 .html url 后缀?

C# 错误 CS1061 : Type `System.Collections.Generic.List<int>' does not contain a definition for `Length'

c# - 使用 LINQ 确定 2 个图的相对位置