C#: Как поменять тип переменной? Или удалить ее, а затем создать заново

Имеется объект data:

Dictionary<string, object> data = new Dictionary<string, object>();

Я поработал с этим словарем, после чего мне нужно создать новый словарь с таким же именем (для удобства работы), но другими параметрами значения и ключа:

Dictionary<string, string> data = new Dictionary<string, string>();

Разумеется, я не смогу это скомпилировать, потому что у меня уже есть объект data. Как я могу перезаписать тип объекта? Может можно как-то удалить data, чтобы затем создать заново?


Нужно чтобы как в языках с динамической типизацией:

data = [1, 2, 3]
data = 'Hello, World!'

Ответы (1 шт):

Автор решения: Sergey Skvortsov

Вы можете использовать тип dynamic:

dynamic data = new Dictionary<string, int>();
data["key"] = 3;
Console.WriteLine(data["key"]);
data = new Dictionary<string, string>();
data["key"] = "value";
Console.WriteLine(data["key"]);

Warning: при программирование на C# не принято использовать такие конструкции, т.к. их применение делает код менее читаемым

→ Ссылка