Partager via


Erreur du compilateur CS1943

Mise à jour : novembre 2007

Message d'erreur

Une expression de type 'type' n'est pas autorisée dans la clause from sous-jacente d'une expression de requête avec le type source 'type'. L'inférence de type a échoué lors de l'appel à la méthode 'méthode'.
An expression of type 'type' is not allowed in a subsequent from clause in a query expression with source type 'type'. Type inference failed in the call to 'method'.

Toutes les variables de portée doivent représenter des types pouvant faire l'objet d'une requête.

Pour corriger cette erreur

  1. Vérifiez qu'il s'agit d'un type pouvant faire l'objet d'une requête qui implémente IEnumerable, IEnumerable<T> ou une interface dérivée ou d'un type disposant d'un modèle de requête spécialement défini.

  2. Si le type est un IEnumerable non générique, fournissez un type explicite à la variable de portée.

Exemple

Le code suivant génère l'erreur 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;
    }
}