c#-添加到通用List属性并保存在viewstate中
作者:互联网
我正在使用通用列表在viewstate中存储一组数据.如果我尝试在get访问器中使用linq对列表进行排序,那么当我尝试将新项目添加到列表中时,如果不起作用.没错,只是没有将其添加到列表中.
当我运行以下代码行时:
MyObjectList.Add(new MyObject());
使用此属性不起作用:
public List<MyObject> MyObjectList
{
get
{
if (ViewState["MyObjectList"] == null)
ViewState["MyObjectList"] = GetDataFromDataBase();
return ((List<MyObject>)ViewState["MyObjectList"]).OrderBy(x => x.MyObjectID).ToList();
}
}
但是使用此属性确实可以(尽管现在每次获取后我都必须进行排序):
public List<MyObject> MyObjectList
{
get
{
if (ViewState["MyObjectList"] == null)
ViewState["MyObjectList"] = GetDataFromDataBase();
return (List<MyObject>)ViewState["MyObjectList"];
}
}
我应该如何对get访问器中的数据进行排序?
解决方法:
.ToList创建列表的副本.您要添加到该列表而不是原始列表.
标签:properties,generics,viewstate,linq,c 来源: https://codeday.me/bug/20191202/2085349.html