Есть объект вида:
class Foo()
{
Dictionary<string, int> _a;
....
public Dictionary<string, int> getA()
{
return _a;
}
}
Я присваиваю значение поля в другом классе чтобы работать с этими значениями (пример):
Dictionary<string, int> temp = Foo.getA();
Но если я удаляю запись из словаря, то она удаляется не из текущей переменной, а из поля объекта Foo
.
Вопрос: как сделать копию значения поля _a из класса Foo?
P.S. Поскольку вопрос оказался слишком широк для интерпретаций возможных вариантов, поясню следующее. В переменной _a
хранится список файлов приложения с их размером. Когда происходит обновление приложения, я просто сравниваю текущее состояние директории с референсным списком файлов в цикле foreach()
. Те файлы, которые не требуют обновлений я удаляю из переменной которой присвоил значение Foo.getA()
, а оставшиеся передаю в поток чтобы произвести необходимые манипуляции. Так вот после повторного вызова проверки целостности приложения список пуст, т.к. при повторном вызове значения из поля _a
их уже меньше и они все подчищаются т.к. все файлы совпадают.
public Dictionary<string, int> getA()
{
return _a.ToDictionary(x=>x.Key, x=>x.Value);
}
Ну или
public Dictionary<string, int> getA()
{
return new Dictionary<string, int>(_a);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В зависимости от некоторого условия, количество вызовов Method2 не должно превышать 3Тест проверяет, срабатывает ли эта логика для конкретного...
делаю маппер из одного класса в другой, как я могу получить все свойства объекта не прибегая к отражению, для того чтобы их обработать и преобразовать...