添加到泛型列表属性并保存在视图状态中

本文关键字:保存 存在 视图状态 属性 泛型 列表 添加 | 更新日期: 2023-09-27 18:16:23

我使用一个泛型List在视图状态中存储一组数据。如果我尝试在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创建列表的副本。