Partager via


Erreur du compilateur CS1941

Mise à jour : novembre 2007

Message d'erreur

Le type de l'une des expressions de la clause 'clause' est incorrect. L'inférence de type a échoué lors de l'appel à la méthode 'méthode'.
The type of one of the expressions in the 'clause' clause is incorrect. Type inference failed in the call to 'method'.

L'inférence de type dans les expressions de requête découle du type des éléments des sources de données.

Pour corriger cette erreur

  • Si la cause de l'erreur n'est pas immédiatement évidente, examinez attentivement la requête et suivez le type du résultat de chaque clause, de la source de données jusqu'à l'erreur.

Exemple

Le code suivant génère l'erreur CS1941 car l'opérateur equals doit comparer int à string.

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

La méthode dans laquelle l'inférence de type échoue est la méthode vers laquelle la clause de requête est traduite lors de la compilation.

Voir aussi

Concepts

Expressions de requête LINQ (Guide de programmation C#)

Relations des types dans des opérations de requête (LINQ)