如何使用自定义类和List<>制作foreach循环在班上

时间:2015-06-26 12:06:27

标签: c#

如果我有这个课程:

    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循环并获得所有值?

2 个答案:

答案 0 :(得分:6)

Cache dictionary isn't strongly typed开始,您会看到kobject(悬停在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) {
    // ...
}