2011-11-30 3 views
3

나는 일반 목록을 사용하여 viewstate에 데이터 집합을 저장합니다. get 접근 자에서 linq를 사용하여 목록을 정렬하려고하면 목록에 새 항목을 추가하려고하면 작동하지 않습니다. 오류가 없으며 단지 목록에 추가되지 않습니다. 나는이 코드 줄을 실행하면일반 목록에 추가 속성 및 viewstate에 저장

:이 속성을 사용

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

LINQ를 사용하면 원래 목록의 정렬 된 복사본이 만들어 지므로 대신 정렬하는 것이 좋습니다. – millimoose

답변

3

.ToList는 목록의 복사본을 만듭니다. 원래 목록보다는 추가하고 있습니다.