繁体   English   中英

在Lambda foreach中实例化类和调用方法

[英]Instantiating a class and calling method in 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();
});

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

您可以先使用Select创建实例,然后对它们进行ForEach ,如下所示:

reports
    .Select(r => new PublishReport(r))
    .ForEach(pr => pr.PublishReports());

只需给lambda一个身体即可:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM