다음을 통해 공유


컴파일러 오류 CS1941

업데이트: 2007년 11월

오류 메시지

'clause' 절에 있는 식 중 하나의 형식이 올바르지 않습니다. 'method'에 대한 호출에서 형식 유추가 실패했습니다.
The type of one of the expressions in the 'clause' clause is incorrect. Type inference failed in the call to 'method'.

쿼리 식에서의 형식 유추는 데이터 소스에 있는 요소의 형식에서 진행됩니다.

이 오류를 해결하려면

  • 오류가 발생한 이유가 확실하지 않으면 신중하게 쿼리를 검사하여 데이터 소스에서 오류가 발생한 지점까지 각 절의 결과 형식을 추적합니다.

예제

다음 코드에서는 equals 연산자에게 int를 string과 비교하도록 요청하기 때문에 CS1941 오류가 발생하는 경우를 보여 줍니다.

// cs1941.cs
using System.Collections;
using System.Linq;
class Test
{
    static int Main()
    {
        var nums = new[] { 1, 2, 3, 4, 5, 6 };
        var words = new string[] { "lake", "mountain", "sky" };
        IEnumerable e = from n in nums
                        join w in words on n equals w // CS1941
                        select w;
        return 0;
    }
}

형식 유추가 실패한 메서드는 컴파일 시 쿼리 절이 변환된 메서드입니다.

참고 항목

개념

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

쿼리 작업의 형식 관계(LINQ)