Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 用于序列化/反序列化一组标志的内置类_.net - Fatal编程技术网

.net 用于序列化/反序列化一组标志的内置类

.net 用于序列化/反序列化一组标志的内置类,.net,.net,我需要在字符串中存储一个标志数组。我正在考虑使用BitArray,但注意到没有内置的方法来写入/读取char[]或int[]或其他内容。我可以很容易地编写这段代码,但如果有内置方法,我更愿意使用内置方法 那么是否有内置的.NET方法可以处理此问题?如果您的标志表示为已定义的枚举,则只需将其强制转换为枚举支持的整数类型之一(int、long等)。然后,可以使用以下命令从枚举的值表示形式反序列化枚举: // define a Flags enumeration... [Flags] enum MyE

我需要在字符串中存储一个标志数组。我正在考虑使用BitArray,但注意到没有内置的方法来写入/读取char[]或int[]或其他内容。我可以很容易地编写这段代码,但如果有内置方法,我更愿意使用内置方法


那么是否有内置的.NET方法可以处理此问题?

如果您的标志表示为已定义的枚举,则只需将其强制转换为枚举支持的整数类型之一(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 );

该类具有一些此功能。

不支持Int32[],您可以使用接受int[]进行初始化,以及。当前的CopyTo实现支持根据msdn写入布尔值[]、字节[]和Int32[]。

与您的问题相关的代码片段可能有助于更好地回答您的问题。实际上,可以使用originalValue.ToString()Parse来序列化和反序列化该值-不需要中间int。是否有需要中间int的原因?