CS1943 de erro do compilador

Mensagem de erro

Uma expressão do tipo 'type' não é permitida em subseqüente da cláusula em uma expressão de consulta com o tipo de fonte 'tipo'.Falha de inferência de tipos de tipos na telefonar para 'método'.

Todas as variáveis de intervalo devem representar os tipos que podem ser consultados.

Para corrigir este erro

  1. Verifique se o tipo é um tipo que podem ser consultado implementa IEnumerable, IEnumerable<T> uma interface derivada ou qualquer Outros tipo que possui um padrão de consulta definido para ele.

  2. Se o tipo for um não-genéricas IEnumerable, fornecer um tipo explícito sobre a variável de intervalo.

Exemplo

O código a seguir gera CS1943:

// cs1943.cs
using System.Linq;
class Test
{
    class TestClass
    { }
    static void Main()
    {
        int[] nums = { 0, 1, 2, 3, 4, 5 };
        TestClass tc = new TestClass();
        
        var x = from n in nums
                from s in tc // CS1943
                select n + s;
    }
}