2017-12-21 17 views
0

Jagged ArrayをHarddriveに保存して後でロードする簡単な方法を探しています。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

もう1つの質問:タイプMemoryStreamとDouble [] []に設定するのではなく、データとデータ2に "var"を使用する理由はありますか? –

+0

varはより一般的で、正確な型を明示的に入力する必要はありません。 – David

関連する問題