无法将对象从视图状态强制转换为集合
本文关键字:转换 集合 视图状态 对象 | 更新日期: 2023-09-27 18:31:32
我正在存储List<KeyValuePair<string, bool>>
的集合在ViewState中,当我尝试将其转换回List<KeyValuePair<string, bool>>
时出现问题错误状态
无法强制转换类型为"System.Collections.Generic.Dictionary
2[System.String,System.Boolean]' to type 'System.Collections.Generic.List
1[System.Collections.Generic.KeyValuePair'2[System.String,System.Boolean]]"的对象。
那么如何将我的键值列表从视图状态转换回来呢?
我的代码行是:
List<KeyValuePair<string, bool>> myObject = (List<KeyValuePair<string, bool>>)ViewState["listOutputWords"];
试试这个:-
KeyValuePair<string, bool> myObject = (KeyValuePair<string, bool>)ViewState["listOutputWords"];
正如编译器明确提到的,您的 ViewState 持有String,Bool
的通用Dictionary
,但您试图将其转换为字典列表,这是错误的。
根据异常,您将在 ViewState
中保存Dictionary<string, bool>
。如果您确实需要List<KeyValuePair<string, bool>>
,请尝试:
List<KeyValuePair<string, bool>> myObject = ((Dictionary<string, bool>)ViewState["listOutputWords"]).ToList();
或者你可以把它反序列化为字典并使用它:
Dictionary<string, bool> myObject = (Dictionary<string, bool>)ViewState["listOutputWords"];