关于对象列表的foreach循环

fro*_*ack 0 asp.net asp.net-mvc

我看不出这段代码有什么问题:

var listShoppingCart = Session["ShoppingCart"];

foreach (var item in listShoppingCart)
{

}
Run Code Online (Sandbox Code Playgroud)

listShoppingCart在foreach循环下方得到一条红线.当我将鼠标悬停在红线上时,消息是Foreach语句无法对变量类型'object'进行操作,因为'object'不包含'GetEnumerator'的公共定义

我用这样的会话声明列表:

Session["ShoppingCart"] = new List<Products>();

Jas*_*ans 5

您需要转换会话对象

var listShoppingCart = Session["ShoppingCart"] as List<Products>;

if (listShoppingCart != null)
{
    // Do stuff...
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我们获取位于会话中的关键字"ShoppingCart"并将该对象转换为a List<Products>.如果无法完成强制转换,那么listShoppingCart将为null.