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

ラムダ式のパラメーターをメソッドに直接渡しているため、Mapper.Mapこのメソッドを の射影として直接指定することとまったく同じですSelect。のシグネチャはデリゲートMapper.Mapと互換性があるFunc<TSource, TResult>ため、R# では、ラムダ式ではなくメソッド グループを直接使用することをお勧めします。

于 2011-08-24T20:59:06.410 に答える
3

最初の行は、Mapper.Map 関数をすぐに呼び出すメソッドを作成します。Mapper.Map メソッドは Select の予想される定義と一致し、Mapper.Map を直接呼び出すことができるため、これは不要です。Resharper は、1 つのメソッドのみが呼び出され、余分なメソッドがコンパイラによって生成されないように変更します。

于 2011-08-24T21:00:08.770 に答える