我有这个:
public static void Remove<T>(string controlID) where T: new()
{
Logger.InfoFormat("Removing control {0}", controlID);
T states = RadControlStates.GetStates<T>();
//Not correct.
(states as SerializableDictionary<string, object>).Remove(controlID);
RadControlStates.SetStates<T>(states);
}
状态将始终是带有字符串键的SerializableDictionary。值的类型各不相同。有没有办法表达这一点?强制转换为
SerializableDictioanry<string, object>
始终会产生null。 最佳答案
您可以为此使用非通用词典接口:
(states as IDictionary).Remove(controlID);
关于c# - 从通用词典中删除项目?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6310866/