< IPv4 でマルチキャストに送出するパケットの TTL を設定する。 | テキストボックスのフォーカス取得時にテキストを選択する >

March 4, 2009

オブジェクトをシーケンスとして返す拡張メソッド

単一のオブジェクトからシーケンスを作成したい場合ありますよね。引数にシーケンスを取る関数に渡すとか、単一オブジェクトもコレクションも同じ処理をしたいとか…。

なので、こんな拡張メソッドを作っとくと便利かも。Enumerable のメンバとしてほしいくらい !

namespace ExtensionMethods
{
    static class EnumerableExtension
    {
        public static IEnumerable<TSource> ToSequence<TSource> (this TSource source)
        {
            yield return source;
        }
    }

    class Person
    {
        static void Main (string [] args)
        {
            var person = new Person ();
            IEnumerable<Person> people = person.ToSequence ();
        }
    }
}

標準にないのかな…。
-------------
IEnumerable<Person> people = Enumerable.Repeat (person, 1);
ならありますね。

トラックバック

このエントリーにトラックバック:
http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/2335

コメント

コメントする

※ コメントスパム対策のため、コメント本文はおはよう、こんにちわ、こんばんわのいずれかより始めるようにしてください。

name:
email:

※ 必要ですが、表示しません。

url:
情報を保存する ?