0
開始implemeting爲枚舉重複值的邏輯之前,我讀到這裏的幾個問題,但後來我遇到了以下問題:枚舉重複的值賦予重名
我有以下枚舉:
public enum Features
{
X1= 3,
X2= 3,
X3= 6,
X4= 6,
X5= 6,
X6= 6,
X7= 10,
X8= 10,
}
從那以後,我嘗試創建像這樣的列表:
var features = new List<Features>(){X1,X2,X3,X5,X6,X7,X8};
,當我看着在調試模式下的列表,列表中包含以下枚舉:
X1,X1,X3,X3,X3,X7,X7
爲什麼會發生這種情況,它是否隱式調用GetName()? 有沒有解決這個問題的方法?
問題是:你爲什麼想要做這樣的事情?枚舉是不同元素/字符串的列表,它們也是根據一組不同的整數(默認情況下,它們的位置)來定義的。有兩個元素與相同的整數關聯會違背這樣的想法。如果你想把一組字符串關聯到一組整數(可能會重複或不重複),你應該依靠不同的方法;例如:一個「字典」。 –
varocarbas
你基本上試圖從多對一的關係,並試圖逆向工程的「一個」價值(即6),並找出它來自哪些「多」(即X3,X4,X5或X6)。你可以看到爲什麼會是一個問題。這就像將手機扔進一堆看似相同的手機,並希望每次都能抓到正確的手機。 –
另請參見[使用具有相同的基礎類型值的條目的枚舉](https://stackoverflow.com/q/26321509/3538012) –