【发布时间】:2013-09-30 23:04:44
【问题描述】:
这个问题可能太笼统了,所以让我补充一些细节:
我有一个实体对象列表,我需要使用 AutoMapper 将其转换为另一个对象。
我已经有一个方法,它接受一个实体作为参数,并在调用 AutoMapper 的 .Map() 后返回另一个对象
我的问题是哪个更便宜?
-对列表中的每个实体调用我预先存在的方法?
使用类似foreach 或.Select(x => transformer.transform(x))
或
-将实体列表传递给执行 foreach 的新方法,然后返回新列表
这有一般规则吗?
【问题讨论】:
-
我的日常困境!
-
“linq 还是不 linq,这是个问题!”
-
它们同样不贵。两者都很便宜。注意
.Select(x => transformer.transform(x))也可以写成.Select(transformer.transform),那么Func<,>实例会直接引用tranform方法,而不是引用匿名函数。但它同样便宜,在我看来更漂亮。 -
我始终牢记,调用额外的函数/方法需要额外的时间。
-
@JeppeStigNielsen 感谢您的洞察力!