如何在类中使用自定义类和List <>进行foreach循环

use*_*010 1 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; }
    }
Run Code Online (Sandbox Code Playgroud)

然后我将值添加到类并添加到缓存.我分配给我的var类型变量缓存值:

    var k = System.Web.HttpContext.Current.Cache[objUserInfo.UserID.ToString()];
Run Code Online (Sandbox Code Playgroud)

那么,我如何获得foreach循环var k并获得所有价值?

Pat*_*man 6

正如您将看到k的那样object(悬停在上面var),因为Cache字典不是强类型的.编译器不知道实际的类型是什么CacheClass.所以第一步就是施展它.我更喜欢使用,as因为如果转换失败它不会抛出异常:

var k = System.Web.HttpContext.Current.Cache[objUserInfo.UserID.ToString()] as CacheClass;
Run Code Online (Sandbox Code Playgroud)

使用as确实需要你做一个null-check来确保演员阵容没问题:

if (k != null)
{
    foreach (string x in k.State)
    {  }
}
Run Code Online (Sandbox Code Playgroud)