CS1941 de erro do compilador

O tipo de uma das expressões na cláusula 'cláusula' está incorreto.Falha de inferência na chamada para 'method'.

Inferência nos fluxos de expressões de consulta do tipo de elementos na fonte de dados.

Para corrigir este erro

  • Se não estiver óbvio imediatamente por que o erro está ocorrendo, examine cuidadosamente a consulta e o tipo do resultado de cada cláusula da fonte de dados para o ponto onde ocorre o erro de rastreamento.

Exemplo

O código a seguir gera CS1941 porque a equals operador é solicitado a comparar uma int para um string.

// 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;
    }
}

O método em que a inferência de tipo falha é o método que a cláusula de consulta é convertida em tempo de compilação.

Consulte também

Conceitos

Expressões de consulta do LINQ (guia de programação do C#)

Relações de tipo em operações de consulta do LINQ (C#)