CS1941 de erro do compilador

Mensagem de erro

O tipo de uma das expressões na cláusula 'cláusula' é incorreto.Falha de inferência de tipos de tipos na telefonar para 'método'.

Digite inferência de tipos de 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 rastrear o tipo de resultado de cada cláusula da fonte de dados para o ponto onde o erro está ocorrendo.

Exemplo

O código a seguir gera CS1941 porque o equals operador está sendo solicitado a comparar um 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 inferência de tipos de tipos de falha é o método que a clásula de consulta é convertida em time de compilar.

Consulte também

Conceitos

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

Relações de tipo em operações de Consulta (LINQ)