基本的な制御構文
Do-While,While,For といったおなじみの制御子構文はC#も同じです
int[] list = { 1,2,3,4,5,6,7,8,9,10};
int pos = 0;
// do-while構文
do
{
Console.WriteLine(list[pos++]);
}
while (pos < list.Length);
// while構文
int pos = 0;
while(pos < list.Length)
{
Console.WriteLine(list[pos++]);
}
// for構文
for(int pos = 0 ; pos < list.Length ; ++pos)
{
Console.WriteLine(list[pos]);
}
Foreach(制御構文)
IEnumerableインタフェースを実現(継承)してる集合にはfoeach文が使えますFor文との比較でパフォーマンスの差異は今はあまりないようです。
int[] list = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
foreach(int item in list)
{
Console.WriteLine(item);
}
Foreach(配列用)
System.Arrayクラスは配列に関するいろいろな機能を提供していますこのクラスに配列の繰り返し用の静的メソッドForEachが定義されています
int[] list = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Array.ForEach(list,item=>Console.WriteLine(item));
Foreach(LINQ)
LINQにもあります
using System.Linq;
int[] list = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
list.ToList().ForEach(item => Console.WriteLine(item));
Yield(列挙子)
IEnumerableを実現(継承)した処理を簡単に書けるようyieldという予約語があります
using System.Collections;
public IEnumerable GetEnumeratorSample()
{
int[] list = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int pos = 0; pos < list.Length; ++pos)
{
yield return list[pos];
}
}
foreach (int item in GetEnumeratorSample())
{
Console.WriteLine(item);
}