私は、更新されたバージョンと元のバージョンを比較したいという辞書に問題があります。ByrefのC#
最初のメソッドは辞書に渡され、そこでそこから、その辞書を更新する静的ヘルパークラスに渡されます。
元の辞書をヘルパークラスに渡す前に、私は比較できるように元の辞書のコピーを作成します。
これは私が問題を抱えているところです。ヘルパークラスの後、辞書の 'コピー'も更新されました。
私は元の辞書の値をコピーすると思っていた辞書を含む構造体を作成しようとしましたが、それはあまりにも参考になりそうです!ここにコードのスニペットがあります。
public PartialViewResult updateItem(string submit, FormCollection Collection)
{
SurveyItem UpdatedItem = new SurveyItem();
ItemSettingsCopy OriginalSettings;
ItemBank CurrentSurvey = (ItemBank)Session["Survey"];
string _itemName = (string)Session["CurrentItem"];
OriginalSettings.ItemSettings = CurrentSurvey[_itemName].ItemSettings;
//this is where I'm trying to make a copy of the original settings.
UpdatedItem = BankManagerHelper.UpdateItem(CurrentSurvey[_itemName], Collection, submit); //static item now updates the fields in the item
//AT THIS POINT OriginalSettings.ItemSettings HAS BEEN CHANGED TOO
ここで扱っているのは、深いコピーと浅いコピー> http://en.wikipedia.org/wiki/Object_copy – MattDavey
ありがとう!私はこれを使用して終了: var newDictionary = oldDictionary.ToDictionary(エントリ=> entry.Key、 エントリ=> entry.Value); – Scottingham