如何将对象转换为集合或列表

时间:2017-03-29 08:57:14

标签: c# asp.net

我将linq list()/ collection结果保存为HttpContext.Current.Cache作为对象,当我尝试将对象作为集合时,它为null,尽管HttpContext.Current.Cache.Get("data")不为空:

ICollection<ActionEntity> actions = HttpContext.Current.Cache.Get("data") as ICollection<ActionEntity>;

1 个答案:

答案 0 :(得分:0)

尝试打印数据类型。类似的东西:

System.Diagnostics.Debug.WriteLine(HttpContext.Current.Cache‌​.Get("data").GetType‌​().ToString()).

然后使用该数据类型进行投射。

您可以在Windows输出中看到结果 - &gt;调试。

修改

您无法转换AnonymousType。你可以做的是创建一个具有相同AnonymousType结构的对象,然后使用它。 例如,你有一个

new {  List = new List<ActionEnti‌​ty>() }

您可以像这样创建一个ListOfList<T>类:

class ListOfList<T> { public List<T> List { get; set; } }

而不是使用AnonymousType,请使用:

new ListOfList<ActionEntity> {  List = new List<ActionEnti‌​ty>() }

然后你可以使用这个投射:

ListOfList<ActionEntity> data = HttpContext.Current.Cache.Get("data") as ListOfList<ActionEntity>;