コレクションを列挙するための Yield の使用を理解しようとしています。私はこの基本的なコードを書きました:
static void Main(string[] args)
{
Iterate iterate = new Iterate();
foreach (int i in iterate.EnumerateList())
{
Console.Write("{0}", i);
}
Console.ReadLine();
}
class Iterate
{
public IEnumerable<int> EnumerateList()
{
List<int> lstNumbers = new List<int>();
lstNumbers.Add(1);
lstNumbers.Add(2);
lstNumbers.Add(3);
lstNumbers.Add(4);
lstNumbers.Add(5);
foreach (int i in lstNumbers)
{
yield return i;
}
}
}
return i
(1)の代わりに単純に使用するとどうなりyield return i
ますか?
(2) Yield を使用する利点は何ですか?
編集**
foreach
上記のコードでは、 2回使用するのはオーバーヘッドだと思います。メソッドの1main function
番目と 2 番目EnumerateList
です。