如果我有这个课程:
public class CacheClass
{
public string UserID { get; set; }
public List<string> TabId { get; set; }
public List<string> State { get; set; }
public List<string> CanAdmin { get; set; }
}
然后我将值添加到类并添加到缓存。我分配给我的var类型变量缓存值:
var k = System.Web.HttpContext.Current.Cache[objUserInfo.UserID.ToString()];
那么,我如何使用var k
获得foreach循环并获得所有值?
答案 0 :(得分:6)
从Cache
dictionary isn't strongly typed开始,您会看到k
是object
(悬停在var
上方)。编译器不知道实际类型是CacheClass
。所以第一步就是施展它。我更愿意使用as
,因为如果转换失败,它不会抛出异常:
var k = System.Web.HttpContext.Current.Cache[objUserInfo.UserID.ToString()] as CacheClass;
使用as
确实需要您执行null
- 检查以确保演员阵容正常:
if (k != null)
{
foreach (string x in k.State)
{ }
}
答案 1 :(得分:2)
你可能错过了演员
var k = System.Web.HttpContext.Current.Cache[objUserInfo.UserID.ToString()] as CacheClass;
foreach(var state in k.State) {
// ...
}