【发布时间】:2013-05-30 09:53:28
【问题描述】:
我刚刚在互联网上找到了几个 c# 代码重构示例,并偶然发现了这段特定的代码。
谁能给我解释一下,为什么Method2()会比Method1()更好?
方法 #1 - 对IEnumerable<string> 进行多次迭代
public void Method1()
{
IEnumerable<string> names = GetNames();
foreach (var name in names)
{
Console.WriteLine("Found " + name);
}
var allnames = new StringBuilder();
foreach (var name in names)
{
allnames.Append(name + " ");
}
}
方法 #2 - 对List<string> 进行多次迭代
public void Method2()
{
IEnumerable<string> names = GetNames();
var enumerable = names as List<string> ?? names.ToList();
foreach (var name in enumerable)
{
Console.WriteLine("Found " + name);
}
var allnames = new StringBuilder();
foreach (var name in enumerable)
{
allnames.Append(name + " ");
}
}
【问题讨论】:
标签: c# list refactoring iteration ienumerable