Freigeben über


Compilerfehler CS1941

Aktualisiert: November 2007

Fehlermeldung

Der Typ eines Ausdrucks in der "Klausel"-Klausel ist falsch. Fehler beim Typrückschluss im Aufruf von "Methode".
The type of one of the expressions in the 'clause' clause is incorrect. Type inference failed in the call to 'method'.

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 equals-Operator 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 Abfrageoperationen (LINQ)