更改前的代码:
List<ProductBrandModel> model = brands.Select(item => Mapper.Map<ProductBrand, ProductBrandModel>(item)).ToList();
改进后的代码:
List<ProductBrandModel> model = brands.Select(Mapper.Map<ProductBrand, ProductBrandModel>).ToList();
这是做什么的?是否隐式在brands
集合中的每个项目上运行映射?
答案 0 :(得分:10)
由于您直接将lambda表达式的参数传递给Mapper.Map
方法,因此它完全等同于将此方法直接指定为Select
的投影。 Mapper.Map
的签名与Func<TSource, TResult>
委托兼容,因此R#建议直接使用方法组而不是lambda表达式。
答案 1 :(得分:3)
第一行创建一个立即调用Mapper.Map函数的方法。这是不必要的,因为Mapper.Map方法匹配Select的预期定义,并且可以直接调用Mapper.Map。 Resharper对其进行更改,以便只调用1个方法,并且编译器不会生成额外的方法。