2017-08-30 98 views
0

我正在尋找一個很好的實踐/想法如何爲我的解決方案寫一個乾淨的代碼。 比方說,我有類Foo:類似對象的列表 - 爲每個元素調用不同的方法

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

我得到了這些元素,如列表:

List<Foo> Foos 

現在我想遍歷我的列表,並調用任何EnumType不同的方法。現在我只是在做這樣的事情:

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

它看起來OK,如果我在TypeEnum有一個或兩個值,但不幸的是我將擁有約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

相關問題