我正在处理一个项目,并且我被这大量代码所困扰。
我不明白如何从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。
所以如果有人能帮助我,我会非常感激。
谢谢!
答案 0 :(得分:3)
它只是使用一种语法糖功能,允许您指定方法组而不是lambda。所以代码:
distinctEcuType.Select(CreateEcuDetails)
有效地被编译器翻译成以下内容:
distinctEcuType.Select(x => CreateEcuDetails(x))