2013-03-20 5 views
0

이 코드를 사용하여 목록을 바이트 배열로 변환하지만이 데이터를 목록으로 변환하는 방법을 다시 설명하겠습니다.바이트 배열을 목록으로 변환 Windows phone 8

+0

나는 그것이 가능하다고 생각하지 않습니다

var serializer = new System.Runtime.Serialization.DataContractSerializer(typeof(List<string>)); byte[] byteArr; using (var ms = new System.IO.MemoryStream()) { serializer.WriteObject(ms, stringlist); byteArr = ms.ToArray(); } 

그리고 그것을 다시 변환 : 당신이 필요에 따라, 차라리 바이트 배열을 변환 할 DataContractSerializer를 사용하는 것이 좋습니다 것 한 문자열이 끝나고 다른 문자열이 시작되는 곳에 정보가 손실되었습니다. – MarcinJuraszek

답변

1

문자열이 끝나는 위치와 다음 위치가 시작되는 위치를 알 수 없기 때문에이 예에서는 불가능합니다.

var stringList = System.Text.Encoding.UTF8.GetString(byteArr, 0, byteArr.Length).Split('\0'); 
: 그런 다음 Split 방법을 사용하여 목록을 검색 할 수 있습니다

List<String> stringlist = new List<String>(); 
stringlist.Add("Oye Oye"); 
stringlist.Add("Hello hello"); 
byte[] byteArr = stringlist.SelectMany(s => System.Text.Encoding.UTF8.GetBytes(s + '\0').ToArray(); 

: 그것은 구분 기호를 사용하여 가능한 것 (0 \ 문자는 종종 문자열의 끝을 표시하는 데 사용됩니다)

하지만 전체적으로 나는 그것이 좋은 생각이라고 생각하지 않습니다. 때문에,

using (var ms = new System.IO.MemoryStream(byteArr)) 
{ 
    stringlist = (Sserializer.ReadObject(ms); 
} 
+0

고마워요. 저에게 잘 맞습니다. – Mohit

+0

직렬화를 사용하여 Line 및 Images의 개체를 포함하는 개체 목록을 변환 할 수 있습니까? – Mohit