我正在使用通用List在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访问器中的数据进行排序?
答案 0 :(得分:3)
.ToList创建列表的副本。您正在添加该内容而不是原始列表。