[英]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.