Для вашего словаря доступно только три сценария: либо должен быть общим, либо не должен передаваться, либо вы не знаете или не заботитесь .
Если это должно быть общим, вам нужно будет реализовать правильную блокировку.Но поскольку первое, что вы делаете в ToOutput()
, это очистите словарь, то не похоже, что его совместное использование принесет вам много преимуществ.
Итак, мы подошли к двум оставшимся сценариям( не должен быть общим, или не знать или не заботиться ), и в обоих случаях было бы лучше изолировать словарь в локальной переменной внутри ToOutput()
:
public static OutputClass ToOutput(this InputClass input)
{
Dictionary<int, SomeClass> algoMgmtDict = new Dictionary<int, SomeClass>();
// Dictionary starts up empty, no need to clear anything.
// Do some kind of transform over the `input` object.
// Return an OutputClass instance.
}