我有这个:

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/

10-11 22:41