I have a generic dictionary of objects and want to use a custom comparer to update the value in the dictionary.
myObjects
contains a dictionary of objects and the value is the number of times that object exists. Note that the value may be incremented numerous times using different comparators or removed altogether.
testObject
is my custom object.
customComparer
is a dynamically changing comparer based on the type of testObject. but all comparers are of the type IEqualityComparer<MyObject>
IDictionary<MyObject, int> myObjects;
var testObject;
var customComparer;
if (myObjects.Keys.Contains(testObject, customComparer))
{
//get the value, if its > 1 then decrement the value
//else remove the entry entirely
//not sure how to get the value based on my custom comparer??
//this code below does not work because it requires the custom comparer
//var occurrences = myObjects[testObject];
//if (occurrences > 1)
// myObjects[testObject]--;
//else
// myObjects.Remove(testObject);
}
else
{
myObjects.Add(testObject, 1);
}
I can use Keys.Contains to determine if the object exists with custom comparer but then i'm not sure how to update the value?