Compilerfehler CS1941

Der Typ eines Ausdrucks 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

  • 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 führt zu 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

Konzepte

LINQ-Abfrageausdrücke (C#-Programmierhandbuch)

Typbeziehungen in LINQ-Abfragevorgängen (C#)