かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

MVVM入門 その1のViewModelで書いてたコードってこう書くかも?と思いついたのでメモ

上記の記事で書いたCalculateTypeViewModelのIEnumerableを返すCreateメソッドってforeach + yieldで書いたけどLINQでも書けるかと思いついたのでメモ。

// before
public static IEnumerable<CalculateTypeViewModel> Create() 
{ 
    foreach (CalculateType e in Enum.GetValues(typeof(CalculateType))) 
    { 
        yield return Create(e); 
    } 
} 

// after(未コンパイル)
public static IEnumerable<CalculateTypeViewModel> Create() 
{ 
    return Enum.GetValues(typeof(CalculateType))
        .Cast<CalculateType>()
        .Select(e => Create(e));
} 

まぁ、どっちで書いてもいいかな。これくらいなら。