Compilerfehler CS1941

Der Typ von einem der Ausdrücke in der Klausel „Klausel“ ist falsch. Fehler beim Typrückschluss im Aufruf von „Methode“.

Der Rückschluss auf Typen in Abfrageausdrücken ergibt sich aus dem Typ der Elemente in der Datenquelle bzw. in den Datenquellen.

So beheben Sie diesen Fehler

  1. Falls die Ursache des Fehlers nicht unmittelbar ersichtlich ist, untersuchen Sie die Abfrage sorgfältig und verfolgen Sie den Typ jedes einzelnen Klauselergebnisses von der Datenquelle hin zu dem Punkt, an dem der Fehler auftritt.

Beispiel

Der folgende Code generiert Fehler CS1941, da der Operator equals int mit string vergleichen soll.

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

Die Methode, bei der ein Fehler im Typrückschluss auftritt, ist die Methode, in die die Abfrageklausel zur Kompilierzeit übersetzt wird.

Siehe auch

LINQ-Abfrageausdrücke
Typbeziehungen in LINQ-Abfragevorgängen