[C# 6.0新機能] 拡張メソッドによるコレクションの初期化

C# 6.0では拡張メソッドを使用した独自のコレクション初期化メソッドを定義することができます。
例としてSampleクラスを以下のように作成します。

class Sample
{
    public string Name { get; set; }

}

// 拡張メソッドでAddを定義
// 初期値の先頭に"Hello,"が追加される
static class SampleExtensions
{
    public static void Add(this List list, string name)
        => list.Add(new Sample { Name = $"Hello, {name}."});
}

上記Sampleクラスのインスタンス生成時に初期値を与えると、初期値の前に”Hello,”が追加されます。

var smp = new List<Sample>()
{
    "Eric", "Paul", "Billy"
};

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください