- 配列
- IEnumerable型
- IEnumerable<T>ジェネリック型

このため、メソッドの返却値(戻り値)の型をIEnumerable型やIEnumerable<T>型にすれば、その返却値を列挙することができます。また、自作したクラスのオブジェクトをforeachで列挙させたい場合は、そのクラスがIEnumerableまたはIEnumerable<T>インターフェースを実装すれば良いことになります。
サンプルとして、1+3+5+7+9を計算するプログラムを掲載します。GetOddNumbersは、引数maxを超えない正の奇数を列挙するメソッドです。
using System;
using System.Collections.Generic;
class EnumSample
{
static IEnumerable<int> GetOddNumbers(int max)
{
for(int k=1;k<=max;k+=2)
yield return k;
}
static void Main(string[] args)
{
int sum=0;
foreach(int n in GetOddNumbers(9))
sum+=n;
Console.WriteLine(sum);
}
}
実行すると、1+3+5+7+9の計算結果である「25」が表示されます。
タグ:IEnumerable C#