从会话列表中检索特定数据

本文关键字:数据 检索 会话 列表 | 更新日期: 2023-09-27 17:56:05

我在会话中存储了一个列表。我能够通过访问从列表中获取用户名userInfo[1]。存储在会话中后,我无法使用Session["userInfo"][1]来执行此操作。

它给了我一个错误

"无法将带有 [] 的索引应用于对象类型的表达式。

对此有什么想法/提示吗?

List<string> userInfo = new List<string>();
userInfo.Add(UserID);
userInfo.Add(Username);
userInfo.Add(Role);
Session[userInfo"] = userInfo;

从会话列表中检索特定数据

您需要

先将其转换为List,因为默认情况下 Session 将作为类型对象返回,如下所示:

var theUserInfo = Session["userInfo"] as List<string>;
// checking if it is indeed List of string
if(theUserInfo != null)
{
   // do something here with the list..
}

或者你可以像这样隐式投射:

userInfo = (List<string>) Session["userInfo"]

作为附加说明,如果您显式强制转换对象,则有可能获得Invalid Cast Exception。因此,我建议您使用使用as语法的"经典"方法,因为它将返回 null 而不是抛出异常。

您必须先将其转换为List<string>

((List<string>)Session["userInfo")[1]