无法将对象从视图状态强制转换为集合

本文关键字:转换 集合 视图状态 对象 | 更新日期: 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"];