簡體   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