Добавить в общий список свойств и сохранить в viewstate - PullRequest
3 голосов
/ 30 ноября 2011

Я использую общий список для хранения набора данных в состоянии просмотра. Если я попытаюсь отсортировать список с помощью linq в методе доступа get, то при попытке добавить новый элемент в список, если он не работает. Без ошибок, просто не добавляет его в список.

Когда я запускаю эту строку кода:

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?

1 Ответ

3 голосов
/ 30 ноября 2011

.ToList создает копию списка. Вы добавляете к этому, а не к первоначальному списку.

...