2017-08-07 57 views
-4

我需要一個像枚舉一樣工作的解決方案,但有可能添加和刪除元素。 我們有一個基礎解決方案,它應該提供一些默認值,這對所有項目都很常見,但所有項目(擴展基礎)也應該能夠添加和刪除它們自己的項目。替代枚舉C#

例子:

基地產品:

public static class Constants 
{ 
    public enum Food 
    { 
     Carrot, 
     Meat, 
     Cheese 
    } 
} 

項目延期:

public static class ProjectConstants 
{ 
    // Remove meat from Food 
    // Add Fish to Food 
} 

所以現在我正在考慮只使用一個列表:

public static List<string> Food = new List<string>(new string[] 
    { 
     "Carrot", 
     "Meat", 
     "Cheese", 
    }); 

這允許我添加和刪除項目中的元素。然而,字符串列表感覺更vunerable由於區分大小寫和拼寫錯誤,而且,我再錯過機會使用:

if (Meat < Carrot) 

請問有什麼好的解決辦法嗎?有人將強大而強大的枚舉方式與添加和刪除元素的通用方法結合起來?

+2

無論如何,肉類<胡蘿蔔的結果是什麼? – EpicKip

+1

使用肉<胡蘿蔔是可怕的...呃。肯定是'肉>胡蘿蔔'? – DavidG

+0

在從集合中刪除此值後,使用'Food.Meat'的代碼會發生什麼情況? –

回答

-2

這可能會幫助你Dynamic enum in C#
因爲您丟失了編譯時間檢查,所以字典選項被排除在外。

編輯: 將鏈接更改爲固定鏈接。

+1

雖然這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/16958903) –