【发布时间】:2011-10-28 12:24:11
【问题描述】:
寻求从这个 sn-p 中删除重复的建议:
foreach (Car car in carList) {
DataRow row = NewRow();
StringBuilder sbConfigurations = new StringBuilder();
foreach (ConfigurationItem configurationItem in car.Configurations)
sbConfigurations.AppendFormat("{0}: {1}\n", configurationItem.Name, configurationItem.Value);
row["configurations"] = sbConfigurations;
StringBuilder sbOptionals = new StringBuilder();
foreach (OptionalItem optionalItem in car.Optionals)
sbOptionals.AppendFormat("{0}, ", optionalItem.Name);
row["optionals"] = sbOptionals;
Rows.Add(row);
}
编辑:这是一个简化的上下文,可能会有更多这样的列表连接
【问题讨论】:
-
我正在考虑使用带有索引名称的数组,但后来我看到您正在调用
car.Optionals。您可以通过使用反射来做到这一点,但这并不能使它变得更好。 -
Configurations 和 Optionals 是否派生自一个公共基类?如果不是,那么显着的简化可能会涉及到反思。如果您要经常这样做,您也许可以证明编写 obj.FormattedOutput(" {Name}: {Value}\n") 之类的函数的努力是合理的
标签: c# coding-style refactoring duplicates