我在Asp.net中使用ArrayList我想提取特定的项目。我的代码是
ArrayList items = (ArrayList)Session["mycart"];
foreach(var v in items)
{
}
但这不起作用。我希望得到像
这样的价值v.myvalue;
我的集会员充满了来自prevoius页面的几件物品。
答案 0 :(得分:3)
问题是ArrayList将所有元素存储为object
。您需要对包含myvalue
的对象类型执行强制转换。
例如
ArrayList items = (ArrayList)Session["mycart"];
foreach(var v in items)
{
MyObject o = v as MyObject;
if (o != null)
{
// do stuff with o.myvalue
}
}
最好只使用通用List
类而不是ArrayList
,尽管您可能有充分的理由不这样做。通常,您应该使用通用(例如List<MyObject>
),不仅是为了提高性能,还是为了易用性。