2009-06-10 32 views
0

我需要存儲標誌的一個陣列中的字符串。我看着使用BitArray,但注意到,有寫入沒有內置的方法/從一個char讀[]或INT []什麼的。我可以很容易地編寫這段代碼,但如果有一個代碼,我更喜歡使用內置方法。內置類序列化/反序列化一組標誌

那麼,有沒有內置的處理這種.NET方法?

+0

關於你的問題可能有助於獲得更好的回答你的問題的代碼片段。 – LBushkin 2009-06-10 19:34:20

回答

2

如果你的標誌被表示爲定義枚舉,你可以簡單地將它轉換爲整數類型的一個枚舉支持(的int,long等)。然後,您可以從它的值表示使用反序列化枚舉:

// define a Flags enumeration... 
[Flags] enum MyEnum { First = 1, Second = 2, Third = 4, }; 


MyEnum originalValue = MyEnum.First | MyEnum.Second; 
int storedValue = (int)originalValue; 

// value serialized into storage somewhere... 

// later on ... 
// deserialized however you need... 
int restoredValue = ReadValueFromDataStore(); 
// convert back into a typesafe enum... 
MyEnum recoveredValue = Enum.Parse(typeof(MyEnum), restoredValue); 
+0

實際上,有可能使用originalValue.ToString()和Enum.Parse序列化和反序列化值 - 是不需要的中間int值。是否有中間int需要的原因? – dmo 2009-06-11 16:39:30