2017-08-30 12 views
0

私のソリューションのクリーンなコードを書くには、良い練習方法が必要です。 のは、私はFooクラスがあるとしましょう:類似のオブジェクトのリスト - 各要素に異なるメソッドを呼び出す

public class Foo 
{ 
    public SomeEnumType Type { get;set; } 
    .... 
} 

私は次のようにこれらの要素のリストを得た:今、私は私のリストを反復処理し、任意のEnumTypeのためのさまざまな方法を呼び出したい

List<Foo> Foos 

。今の私はちょうどこのような何かをやっている:

foreach (var x in Foos) 
{ 
    if (x.Type == XXX) 
     invoke first(); 
    else if (x.Type == YYY) 
     invoke second(); 
    ..... 
} 

私は私のTypeEnum中の1つのまたは2つの値を得た場合、それはOKに見えますが、残念ながら私は約~~ 30と私はそれがでひどいなりますと仮定ようになります~~ 30その他。それをより良くするには?誰も前にそのような問題に会ったことはありますか?

答えて

1

あなたは、はい、私はこの方法を知っているが、これは良い習慣であるタイプDictionary<SomeEnumType, Action>

var actions = new Dictionary<SomeEnumType, Action>() 
{ 
    { SomeEnumType.SomeVal,()=>{ Console.WriteLine("test"); } } 
}; 

actions[SomeEnumType.SomeVal](); 
+0

の辞書を使用することができますか?私が30の要素でそのような辞書を初期化しなければならない場合、悪い習慣とはみなされませんか?私はこのテクニックを使用していたので、私は~~約4~5要素を持っていたので、尋ねるだけでした。しかし、私は初心者ですので、ちょうど尋ねる:) – CSharpBeginner

関連する問題