2012年01月30日

[C#] foreachで列挙可能な返却値をもつメソッドを作る

 C#のforeach文で列挙できるオブジェクトは、次の3通りがあります。
  • 配列
  • 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」が表示されます。

web拍手 by FC2
タグ:IEnumerable C#
posted by 北条利彦 at 23:23 | Comment(0) | TrackBack(0) | C# | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/249415683

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。