문자열에 플래그 배열을 저장해야합니다. BitArray를 사용하여 보았지만 char [] 또는 int [] 또는 뭔가를 쓰거나 읽는 기본 제공 메서드가 없다는 것을 알았습니다. 나는이 코드를 쉽게 작성할 수 있지만 거기에 하나가 있다면 내장 메소드를 사용하는 것을 선호한다.플래그 세트를 직렬화/비 직렬화하는 빌트인 클래스
이렇게 처리하는 기본 제공 .NET 메서드가 있습니까?
문자열에 플래그 배열을 저장해야합니다. BitArray를 사용하여 보았지만 char [] 또는 int [] 또는 뭔가를 쓰거나 읽는 기본 제공 메서드가 없다는 것을 알았습니다. 나는이 코드를 쉽게 작성할 수 있지만 거기에 하나가 있다면 내장 메소드를 사용하는 것을 선호한다.플래그 세트를 직렬화/비 직렬화하는 빌트인 클래스
이렇게 처리하는 기본 제공 .NET 메서드가 있습니까?
깃발이 정의 된 열거 형으로 표시되는 경우 지원을 열거하는 정수 유형 (int, long 등) 중 하나에 간단하게 캐스팅 할 수 있습니다. 다음을 사용하여 값 표현식에서 enum을 deserialize 할 수 있습니다.
// 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);
실제로, originalValue.ToString() 및 Enum.Parse를 사용하여 값을 직렬화 및 비 직렬화 할 수 있습니다. 중간 int는 필요하지 않습니다. 중간 int가 필요한 이유가 있습니까? – dmo
BitConverter 클래스에는이 기능 중 일부가 있습니다.
BitArray은 Int32 []를 지원하지만 초기화를 위해 int [] 및 CopyTo(Array array, Int32 index)을 사용할 수있는 constructor을 사용할 수 있습니다. 현재의 CopyTo 구현은 msdn에 따라 Boolean [], Byte [] 및 Int32 []에 대한 쓰기를 지원합니다.
문제와 관련된 코드 스 니펫이 질문에 대한 더 나은 답변을 얻는 데 도움이 될 수 있습니다. – LBushkin