У меня есть общий словарь объектов, и я хочу использовать пользовательский компаратор для обновления значения в словаре.
myObjects
содержит словарь объектов, а значение - количество раз, которое объект существует. Обратите внимание, что значение можно увеличивать многократно с использованием различных компараторов или удалять вообще.
testObject
- мой пользовательский объект.
customComparer
- динамически изменяемый компаратор, основанный на типе testObject. но все компараторы имеют тип 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);
}
Я могу использовать Keys.Contains, чтобы определить, существует ли объект с помощью пользовательского компаратора, но тогда я не уверен, как обновить значение?