繁体   English   中英

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

[英]How to make foreach loop with custom class and List<> in class

如果我有这个课:

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

正如您将看到的, k是一个object (将鼠标悬停在var ),因为Cache字典不是强类型的 编译器不知道实际类型是CacheClass 因此,步骤1是强制转换。 我更喜欢使用as因为如果强制转换失败,它不会抛出异常:

var k = System.Web.HttpContext.Current.Cache[objUserInfo.UserID.ToString()] as CacheClass;

使用as确实需要您执行null -check以确保强制转换正常:

if (k != null)
{
    foreach (string x in k.State)
    {  }
}

您可能缺少演员表

var k = System.Web.HttpContext.Current.Cache[objUserInfo.UserID.ToString()] as CacheClass;
foreach(var state in k.State) {
    // ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM