現在、HashtableとDictionaryを互いに比較しようとして問題が発生しています。同じデータ(asp.net、c#)のHashtableとIDictionaryを比較
Telerik radgridを使用して更新を行っています。
アップデートでは、古い値が新しい値とまったく同じかどうかをチェックしたい場合は、一致する場合はメソッドから取り消します。
以下は私が使用しているコードです。 IDictionary内のHashtableとSavedOldValuesに新しい値を格納します。
if ((e.Item is GridEditableItem) && e.Item.IsInEditMode && e.CommandName.Equals("Update"))
{
try
{
GridEditableItem UpdateItem = (GridEditableItem)e.Item;
Hashtable newValues = new Hashtable();
e.Item.OwnerTableView.ExtractValuesFromItem(newValues, UpdateItem);
IDictionary oldValues = UpdateItem.SavedOldValues;
質問へのアップデート: だから私はoldValues辞書かかわらず、以下のアドバイスやループを取り、キーがnewValues Hashtableに存在するかどうかを確認しています。
以下は私が達成しようとしているものです。基本的に私は辞書の値を見つけるためにキーを使用する必要がありますが、私はそれを働かせるように見えることはできません。私が手
エラーは、オブジェクトが提供する任意の助け
foreach (DictionaryEntry oldEntry in oldValues)
{
if (newValues.ContainsKey(oldEntry.Key) &&
newValues[oldEntry.Key].Contains(oldEntry.Value))
{
//Data matches
}
}
感謝が含まれていますの定義が含まれていませんです。
'HashTable'は完全に時代遅れのデータ構造であり、10年以上にわたって存在しています。あなたは本当に完全にそれを使用することを避け、単に 'Dictionary'を使います。 – Servy