Share via


컴파일러 오류 CS1947

업데이트: 2007년 11월

오류 메시지

범위 변수 'variable name'은(는) 읽기 전용이므로 이 변수에 값을 할당할 수 없습니다.
Range variable 'variable name' cannot be assigned to -- it is read only.

범위 변수는 foreach 문의 반복 변수와 비슷합니다. 범위 변수는 쿼리 식에서 할당할 수 없습니다.

이 오류를 해결하려면

  1. 범위 변수에 대한 할당을 제거합니다.

  2. 필요한 경우 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();
    }
}

참고 항목

개념

LINQ 쿼리 식(C# 프로그래밍 가이드)