2017-12-21 50 views
0

지그재그 배열을 하드 드라이브에 저장하여 나중에로드하는 간단한 방법을 찾고 있습니다. C# 뒤틀린 배열을 드라이브에 저장하십시오.

내가이 문제에 대한이 게시물 ... Save and load a jagged array

발견 ...하지만 난 힘든 시간을 이해하고 난이 일을 더 쉬운 방법이있을 것 같아요.

내가 저장하기 위해 노력하고있어 배열은

다른 솔루션에 대한 모든 아이디어 8킬로바이트 ~의 크기는?

+2

당신은 JSON 직렬화를 시도? –

+0

나는 결코 직렬화를 사용하지 않았다. 이론적으로 어떻게 작동하는지는 알지만 꽤 많이 있습니다. JSON 직렬화를 사용하면 유망한 것으로 보입니다. 그것에 대해 자세히 알아 보려면 시작해야 할 팁이 있습니까? –

+0

.NET (JavascriptSerializer)에 내장 된 Json 직렬화가 있지만 대부분의 경우 Json.Net을 사용하는 것이 좋습니다. 'JsonConvert.Serialize()'는 들쭉날쭉 한 배열에서 작동해야합니다. 그러나 가독성과 상호 운용성에 비해 효율성/압축성이 필요한 경우 'MemoryStream' 답변이 도움이 될 수 있습니다. –

답변

0

사용 MemoryStream을은 :

double[][,] myJaggedArr = ... 
var data = SerializeToStream(myJaggedArr); 
var data2 = DeserializeFromStream(data) as double[][,]; 

public static MemoryStream SerializeToStream(object o) 
{ 
    MemoryStream stream = new MemoryStream(); 
    IFormatter formatter = new BinaryFormatter(); 
    formatter.Serialize(stream, o); 
    return stream; 
} 

public static object DeserializeFromStream(MemoryStream stream) 
{ 
    IFormatter formatter = new BinaryFormatter(); 
    stream.Seek(0, SeekOrigin.Begin); 
    object o = formatter.Deserialize(stream); 
    return o; 
} 
+0

고마워, 그게 완벽 해. –

+0

한 가지 더 질문 : Type을 MemoryStream 및 Double [] []로 설정하는 대신 data 및 data2에 "var"를 사용하는 이유가 있습니까? –

+0

var이 더 일반적이고 정확한 유형을 명시 적으로 입력 할 필요가 없습니다. – David