c# - 在 lambda foreach 中实例化一个类并调用方法

标签 c# lambda foreach

是否可以在 ForEach lambda 表达式中执行此操作?

reports.ForEach(x => new PublishReport(x)
      PublishReport.PublishReports());

我想要做的是实例化 PublishReport(只包含类和方法名称)类,传递一个报告对象,然后调用 PublishReport 类的 PublishReports 方法。

我所做的工作是:

reports.ForEach(x => CallPublishReports(x));

private void CallPublishReport(Report report)
{
    PublishReport publishReport = new PublishReport(report);
    publishReport.PublishReports();
}

最佳答案

您正在寻找的代码看起来像这样:

reports.ForEach(x => (new PublishReport(x)).PublishReport());

或者

reports.ForEach(x => {
    var report = new PublishReport(x);
    report.PublishReports();
});

您也可以将 ForEach 替换为 Select,因为前者仅存在于 PLINQ afaik 中。

关于c# - 在 lambda foreach 中实例化一个类并调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47140137/

相关文章:

c# - List<IJob>.AddRange(List<Job>) 不起作用

java - 如果编译器可以内联日志调用,为什么还要在日志 API 中使用 lambda 表达式

json - 使用 Jackson 序列化和反序列化 Lambda

c# - LINQ - EF 的多个函数参数

javascript - 等待多个 for-each 语句完成

c# - Prism,将 Views 和 ViewModels 与 Unity 连接起来,试图理解它

c# - 从 C# 为 PowerShell 启用执行策略

c# - 是否需要 "BEGIN TRAN"才能获得正确的 SCOPE_IDENTITY?

R:doParallel (FORK)、foreach 和随机数生成

java - 关于 ArrayList 语法的说明