Копия поля объекта C#

161
15 ноября 2018, 00:30

Есть объект вида:

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 их уже меньше и они все подчищаются т.к. все файлы совпадают.

Answer 1
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);
}
READ ALSO
Как работать с `out` параметрами методов при `Setup`/`Verify` этих методов в мок-классе?

Как работать с `out` параметрами методов при `Setup`/`Verify` этих методов в мок-классе?

В зависимости от некоторого условия, количество вызовов Method2 не должно превышать 3Тест проверяет, срабатывает ли эта логика для конкретного...

183
C# DefaultView - добавить значение

C# DefaultView - добавить значение

Прошу помогите мне разобраться:

149
Как получить доступ ко всем свойствам объекта, не используя &#171;отражение&#187; c#

Как получить доступ ко всем свойствам объекта, не используя «отражение» c#

делаю маппер из одного класса в другой, как я могу получить все свойства объекта не прибегая к отражению, для того чтобы их обработать и преобразовать...

163
Как правильно использовать get и set в C# [дубликат]

Как правильно использовать get и set в C# [дубликат]

На данный вопрос уже ответили:

235