スポンサーリンク

【C#】辞書型Dictionaryをバイナリシリアル化(保存)とデシリアル化(復元)する方法。

C#
スポンサーリンク

今回の記事は辞書型Dictionaryをバイナリシリアル化(保存)する方法とデシリアル(復元)の方法に関して紹介した記事です。初心者にも分かりやすいように記載しているので是非参考にしてみてください。

他にも文字列のバイナリシリアル化やそのバイナリファイルの読み込み方法、List配列をシリアル化などに関しての記事も書いているので是非そちらも興味があれば見ていってください。
【C#】オブジェクトのバイナリシリアル化
【C#】バイナリファイルの読み込み

【C#】List配列をバイナリシリアル化(保存)とデシリアル化(復元)する方法。

スポンサーリンク

辞書型Dictionaryをバイナリシリアル化(保存)

まずはList配列をバイナリシリアル化してバイナリファイルとして保存してみましょう。

using Scraping.Define;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;

namespace Test1
{
    class Test
    {
        public static void Main()
        {
            Dictionary<int,string> list = new Dictionary<int,string> {1:"2",3:"4"};
            FileStream fs = new FileStream("指定のパス.obj",
                FileMode.Create,
                FileAccess.Write);
            BinaryFormatter bf = new BinaryFormatter();
            //シリアル化して書き込む
            bf.Serialize(fs, list);
            fs.Close();
        }
    }
}

バイナリ形式で保存する方法は簡単で、上記のようにバイナリ形式に変換したものをファイルストリームでファイルに保存するのみです。

辞書型Dictionaryをデシリアル化(復元)

次にバイナリ形式で保存したList配列の読み込み方法に関してご紹介します。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;

namespace Test1
{
    class Test
    {
        //シリアライズ読み込み(バイナリ→文字列)
        public static void Main()
        {
            FileStream fs = new FileStream("指定パス.obj",
                FileMode.Open,
                FileAccess.Read);
            BinaryFormatter f = new BinaryFormatter();
            //読み込んで逆シリアル化する
            var obj = (Dictionary<int,string>)f.Deserialize(fs);
            Console.WriteLine(obj[1])
            Console.WriteLine(obj[3])
            fs.Close();
        }
    }
}

読み込み時はstringなどの方以外は、型キャストをする必要があるので上記コードのように丸カッコを先頭に付けます。「(Dictionary<int,string>) =(型)変数」みたいな感じです。出力は下記です。

2
4

これでバイナリファイルから元の辞書型データをキーを使って呼び出し、辞書型として再度扱うことができます。

以上で今回の記事を終了します。他にもList配列に似ているList配列に関してもバイナリ変換する方法を記事に書いていますし、C#関連の記事も多数記載しています。そちらも是非参考にしてください。

本記事を読んでいただき感謝です。サイトを訪れていただいた方はプログラミング勉強中かと思いますのでプログラミング勉強のコツを合わせてご紹介。

スポンサーリンク
スポンサーリンク
スポンサーリンク

ブログに関しては500円程度かかりますが、それ以外は無料です。知識の吸収と並行してアウトプットは非常に効率が良いです。テックアカデミーに関しては講座レベルが高いにも関わらず、無料体験や人気口座も大幅値下げがあるので、重点的に学びたいものを無料体験してみてください。

転職時にも、エンジニアからテックアカデミー・Paizaは認知度が高いので、未経験入社採用を行う際履歴書で目に留まります。特にPaizaのスキルレベルA・SなどはIT業界でも評価されます。

テックアカデミー・Paizaの無料登録ができる期間中にぜひご利用してみてください。私も活用経験ありです。

C#
スポンサーリンク
スポンサーリンク

コメント

タイトルとURLをコピーしました