3
我正在使用通用列表来存储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访问器中的数据进行排序?
有人猜测,这是因为使用LINQ将始终创建原始列表的排序副本,而不是将其排序。 – millimoose