Ich habe derzeit ein Problem beim Versuch, eine Hashtable und ein Wörterbuch miteinander zu vergleichen.Vergleichen Hashtable und IDictionary für die gleichen Daten (asp.net, C#)
Ich benutze ein Telerik radgrid, um ein Update zu tun.
Auf dem Update möchte ich überprüfen, ob die oldvalues genau die gleichen wie die neuen Werte sind, wenn sie übereinstimmen, werde ich nur aus der Methode abbrechen.
Unten ist der Code, den ich verwende. Ich speichere neue Werte in Hashtable und SavedOldValues in einem IDictionary.
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;
Update Frage: So habe ich nehme Ratschläge unten und Schleife obwohl die oldValues Wörterbuch und prüfen, ob der Schlüssel in dem NewValues Hashtable existiert.
Unten ist was ich suche zu erreichen. Im Grunde muss ich den Schlüssel verwenden, um den Wert im Wörterbuch zu finden, aber ich kann nicht scheinen, es zur Arbeit zu bringen.
Fehler i erhalten, ist Objekt keine Definition enthält für Enthält
foreach (DictionaryEntry oldEntry in oldValues)
{
if (newValues.ContainsKey(oldEntry.Key) &&
newValues[oldEntry.Key].Contains(oldEntry.Value))
{
//Data matches
}
}
Vielen Dank für jede Hilfe.
'HashTable' ist eine völlig veraltete Datenstruktur, und das seit über einem Jahrzehnt. Sie sollten wirklich vermeiden, es vollständig zu verwenden, und verwenden Sie einfach ein 'Dictionary'. – Servy