[英]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.