컴파일러 오류 CS1947
업데이트: 2007년 11월
오류 메시지
범위 변수 'variable name'은(는) 읽기 전용이므로 이 변수에 값을 할당할 수 없습니다.
Range variable 'variable name' cannot be assigned to -- it is read only.
범위 변수는 foreach 문의 반복 변수와 비슷합니다. 범위 변수는 쿼리 식에서 할당할 수 없습니다.
이 오류를 해결하려면
범위 변수에 대한 할당을 제거합니다.
필요한 경우 let 절을 사용하여 새 범위 변수를 도입하고 해당 변수를 사용하여 값을 저장합니다.
예제
다음 코드에서는 CS1947 오류가 발생하는 경우를 보여 줍니다.
// cs1947.cs
using System.Linq;
class Test
{
static void Main()
{
int[] array = new int[] { 1, 2, 3, 4, 5 };
var x = from i in array
let k = i
select i = 5; // CS1947
x.ToList();
}
}