2011-10-12 6 views
3

는 foreach 문에 적용되는 변경 사항이 유지되지 않습니다 내가 컬렉션 돌아 왔을 때의 LINQ 항목 컬렉션 보존되지 변경됩니다 : 그 foreach는 내이 내 이해를 모순의 Foreach 다음 예에서

var people = SomeLinqToSqlSource(); 

foreach (var person in people) 
{ 
    person.Name = "Jimmy"; 
} 

return people.AsQueryable(); 

을 (..) 현재 항목에 대한 참조별로 작업합니다.

아무도 내가 잘못 가고있는 부분을 알려주시겠습니까?

감사합니다. 각 person 인스턴스가 쿼리를 실행하여 재구성되기 때문에 업데이트 된 속성은 이제 사라 -

답변

7

문제는 peopleIQueryable하고 당신이 그것을 반환하고 소비자가 결과를 열거 할 때 다시 쿼리이다.

당신이 ToList()를 사용하여 먼저 데이터를 구체화해야 변경, 즉 보존하고 다음 IEnumerable (또는 IList)

+0

감사로 목록을 반환하려면! 지금은 이해. 내 데이터를 구체화했습니다. 이제 모든 것이 작동합니다. – christofr