我需要在字符串中存储一组标志。我正在考虑使用BitArray,但注意到没有内置方法来写入/读取char []或int []或其他东西。我可以很容易地编写这段代码,但如果有一个内置方法,我宁愿使用内置方法。
那么有内置的.NET方法可以解决这个问题吗?
答案 0 :(得分: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 );
答案 1 :(得分:0)
BitConverter类具有部分功能。
答案 2 :(得分:0)
BitArray支持Int32 [],您可以使用接受int []进行初始化的constructor和CopyTo(Array array, Int32 index)。根据msdn,当前的CopyTo实现支持写入Boolean [],Byte []和Int32 []。