私は類似の構造を持つ2つの辞書を持っています
Dictionary<string, List<int>> Origins
と
Dictionary<string, List<int>> Changes
最初に Origins を作成しました。初期状態のコピーです。例 :
Origins["toto"] = new List<int>(){1,2,3};
Origins["tata"] = new List<int>();
Origins["titi"] = new List<int>(){1,2};
ユーザーの操作の後、変更辞書に変更を保存します。基本的に、ユーザーは文字列にリンクされた数値を追加または削除できます。したがって、次のような変更のすべての痕跡を保持します。
例: ユーザーが辞書の "tata" に 1 を追加した場合 変更 a have "tata" have 1
ユーザーが辞書の「toto」に 4 を追加した場合 変更 a have "toto" have 1,2,3,4
ユーザーが辞書の「titi」の 1 を削除した場合 変更 a have "titi" have 2
ユーザーがいつ元の状態に戻ったかを簡単に比較するには、変更辞書が必要です。
文字列が変更されていない場合、変更辞書にはこの文字列のエントリがありません。
多くの変更の後、ユーザーは変更を保存できます。したがって、すべての追加操作と削除操作を見つける必要があります。
私の最初のアイデアは、2 つの辞書を比較して、操作 add と操作 remove を確認することです。しかし、どのように?同じ文字列のリストを比較すると、違いがわかるかもしれませんが、ここで立ち往生しています。そして、おそらくこれを行うためのより良い方法がありますか? なにか提案を ?