インターネットで 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 + " ");
}
}