所以在下面的代码中,我真的很喜欢场景一的冗长,但我想知道与场景二相比,这对性能有多大影响。循环中的实例化很重要吗?
语法上的好处(我喜欢,有些人甚至可能不同意它是冗长的或最佳的)是否值得所说的性能损失?您可以假设集合仍然相当小(N < 几百)。
// First scenario
var productCategoryModels = new List<ProductCategoryModel>();
foreach (var productCategory in productCategories)
{
var model = new ProductCategoryModel.ProductCategoryModelConverter(currentContext).Convert(productCategory);
productCategoryModels.Add(model);
}
// Second scenario
var productCategoryModels = new List<ProductCategoryModel>();
var modelConvert = new ProductCategoryModel.ProductCategoryModelConverter(currentContext);
foreach (var productCategory in productCategories)
{
var model = modelConvert.Convert(productCategory);
productCategoryModels.Add(model);
}
很想听听你们对此的看法,因为我经常看到这种情况。
最佳答案
我会以不同的方式处理这个问题。如果 new ProductCategoryModel.ProductCategoryModelConverter(currentContext)
中发生的任何事情在循环期间都没有改变,我认为没有理由将它包含在循环中。如果它不是循环的一部分,那么它不应该在 imo 中。
如果仅仅因为它看起来更好而将其包括在内,就会迫使读者弄清楚它是否有所作为。
关于c# - 循环中的实例化 : Verbosity vs. 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3234605/