Errore del compilatore CS1935

Aggiornamento: novembre 2007

Messaggio di errore

Impossibile trovare un'implementazione del modello di query per il tipo di origine 'tipo'. 'metodo' non trovato. Probabilmente manca un riferimento a 'System.Core.dll' o una direttiva using per 'System.Linq'.
Could not find an implementation of the query pattern for source type 'type'. 'method' not found. Are you missing a reference to 'System.Core.dll' or a using directive for 'System.Linq'?

Il tipo di origine in una query deve essere IEnumerable, IEnumerable<T> o un tipo derivato o un tipo per il quale sono stati implementati gli operatori di query standard. Se il tipo di origine è un IEnumerable o IEnumerable<T>, è necessario aggiungere un riferimento a system.core.dll e una direttiva using affinché lo spazio dei nomi System.Linq inserisca i metodi di estensione dell'operatore di query standard nell'ambito. Le implementazioni personalizzate degli operatori di query standard devono essere inserite nell'ambito nella stessa modalità, con una direttiva using e, se necessario, un riferimento all'assembly.

Per correggere l'errore

  • Aggiungere al progetto i riferimenti e le direttive using richiesti.

Esempio

Nel codice seguente viene generato l'errore CS1935 perché la direttiva using per System.Linq contiene commenti:

// cs1935.cs
// CS1935
using System;
using System.Collections.Generic;
// using System.Linq;


class Test
{
    static int Main()
    {
        int[] nums = {0,1,2,3,4,5};
        IEnumerable<int> e = from n in nums
                        where n > 3
                        select n;
        return 0;
    }
}

Vedere anche

Concetti

Cenni preliminari sugli operatori di query standard