【问题标题】:How to call a method within a lambda expression?如何在 lambda 表达式中调用方法?
【发布时间】:2016-09-29 10:42:42
【问题描述】:

我正在处理一个项目,但我被大量代码卡住了。

我不明白如何在不指定参数的情况下从 lambda 表达式调用 CreateEcuDetails 方法...

 var ecuList = new List<EcuDetails>();

 var distinctEcuType = (from c in convertedEcuType
     select c.ShortEcuType).Distinct().ToList();
 ecuList.AddRange(distinctEcuType.Select(CreateEcuDetails).OrderBy(x => x.Name));

 private EcuDetails CreateEcuDetails(string ecuType)
 {
     return new EcuDetails
     {
         Name = ecuType,
         ImportPath = ecuType,
         LogicalPath = "Ecu Type"
     };
 }

这段代码已经写好了,我必须写一些类似的东西,但是 CreateEcuDetails 必须再获得一个参数,这是另一个字符串,但正如我所说,我不知道该方法是如何工作的,当我将另一个参数添加到它不再起作用的方法中......

我想做的是按两个元素对 ecuList 进行排序,首先是 carModel,然后是 ecuType。

所以如果有人可以帮助我,我将非常感激。

谢谢!

【问题讨论】:

    标签: linq c#-4.0 lambda


    【解决方案1】:

    它只是使用允许您指定方法组而不是 lambda 的语法糖功能。所以代码:

    distinctEcuType.Select(CreateEcuDetails)
    

    实际上被编译器翻译成以下内容:

    distinctEcuType.Select(x => CreateEcuDetails(x))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-10
      • 2016-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多