Compilerfehler CS1943Compiler Error CS1943

Ein Ausdruck vom Typ „Typ“ ist in einer nachfolgenden from-Klausel in einem Abfrageausdruck mit dem Quelltyp „Typ“ unzulässig.An expression of type 'type' is not allowed in a subsequent from clause in a query expression with source type 'type'. Fehler beim Typrückschluss im Aufruf von „Methode“.Type inference failed in the call to 'method'.

Alle Bereichsvariablen müssen abfragbare Typen darstellen.All range variables must represent queryable types.

So beheben Sie diesen FehlerTo correct this error

  1. Stellen Sie sicher, dass der Typ ein abfragbarer Typ ist, der IEnumerable, IEnumerable<T>, eine abgeleitete Schnittstelle oder einen anderen Typ mit definiertem Abfragemuster implementiert.Make sure that the type is a queryable type that implements IEnumerable, IEnumerable<T> or a derived interface, or any other type which has a query pattern defined for it.

  2. Wenn der Typ ein nicht generischer IEnumerable ist, stellen Sie für die Bereichsvariable einen expliziten Typ bereit.If the type is a non-generic IEnumerable, provide an explicit type on the range variable.

BeispielExample

Mit dem folgenden Code wird der Fehler CS1943 generiert:The following code generates 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;  
    }  
}