8

在此处输入图像描述

修改前的代码:

List<ProductBrandModel> model = brands.Select(item => Mapper.Map<ProductBrand, ProductBrandModel>(item)).ToList();

改进后的代码:

List<ProductBrandModel> model = brands.Select(Mapper.Map<ProductBrand, ProductBrandModel>).ToList();

这是在做什么?brands它是否在集合中的每个项目上隐式运行该映射?

4

2 回答 2

10

由于您是直接将 lambda 表达式的参数传递给该Mapper.Map方法,因此它完全等同于将该方法直接指定为Select. 的签名Mapper.Map与委托兼容Func<TSource, TResult>,因此 R# 建议直接使用方法组而不是 lambda 表达式。

于 2011-08-24T20:59:06.410 回答
3

第一行创建一个立即调用 Mapper.Map 函数的方法。这是不必要的,因为 Mapper.Map 方法匹配 Select 的预期定义并且可以直接调用 Mapper.Map。Resharper 对其进行了更改,以便仅调用 1 个方法,并且编译器不会生成额外的方法。

于 2011-08-24T21:00:08.770 回答