Enum.GetValues() が遅いので
前にも書いたけど Enum クラスのスタティックメソッド群は結構低速だったりして、特定の型に対して
enum Enum1 { A, B, C, D, } private IEnumerable<Enum1> AllEnum1() { yield return Enum1.A; yield return Enum1.B; yield return Enum1.C; yield return Enum1.D; }
とか、
enum Enum2 : int { A = 0, B, C, D, __END__ } private IEnumerable<Enum2> AllEnum2() { for (int i = 0; i < (int) Enum2.__END__; i++) yield return (Enum2) i; }
とか、書いて GetValues と置き換えてみたらかなりはやかったり…。