2009-05-15 6 views
11

Ho installato MonoDevelop 2.0 sul mio Mac.Come si usa Linq in MonoDevelop 2.0 su OS X?

Ho creato una nuova applicazione console.

Il programma "Hello World" funziona correttamente.

Ma non posso usare Linq.

using System. non mostra l'opzione Linq.

Cosa devo fare?

risposta

20

Potrebbe essere necessario fare clic destro sul tuo progetto nella visualizzazione soluzione, fare Options, Build, General, e impostare il runtime di destinazione per Mono/.Net 3.5 o più grande.

Quindi è possibile fare clic con il pulsante destro del mouse su riferimenti, fare Modifica riferimenti e aggiungere un riferimento a System.Core al progetto.

+1

anche .. non solo l'obiettivo ma il tuo progetto deve essere anche 3.5 (avevo problemi dove il mio progetto era 2.0 e puntava a un progetto mono/net 3.5 ed è impazzito) – KevinDeus

+0

Grazie mille. Sapevo cosa fare come target del runtime ma non sapevo che avevo bisogno di cambiare il core lib. –

1

L'applicazione console fa riferimento allo System.Core.dll? È necessario fare riferimento ad esso per utilizzare System.Linq.

+1

Mi mancava questa DLL. Grazie! –

6

Io corro MonoDevelop 2.0 e Mono 2.0 su Ubuntu 9.04 e lambda e di Linq funzionano bene.

Contrariamente a quanto afferma Thomas Levesque, System.Core esiste in Mono. I metodi di estensione, lambda's et al sono tutti supportati.

È necessario utilizzare using System.Linq.

public static void Example1()  
{ 

    List<string> people = new List<string>() 
    { 
     "Granville", "John", "Rachel", "Betty", 
     "Chandler", "Ross", "Monica" 
    }; 

    IEnumerable<string> query = from p in people where p.Length > 5 
    orderby p select p; 

    foreach (string person in query) 
    { 
     Console.WriteLine(person); 
    } 
} 
+0

Ciao, Ho aggiunto "using System.Linq" e ho ricevuto il seguente errore quando ho compilato. [Attività: File =/Utenti/ssk/Progetti/Test Linq 4/Test Linq 4/Main.cs, Linea = 17, Colonna = 50, Tipo = Errore, Priorità = Normale, Descrizione = Implementazione di 'Dove ' non è stato possibile trovare il modello di espressione della query. Ti manca 'System.Linq 'usando direttiva o riferimento a' System.Core.dll '? (CS1935)] –

+0

Cosa succede quando provi ad eseguire il codice di esempio? Che tipo stai cercando di chiamare Where on? – Opflash

+0

Quindi Mono è più avanzato di quanto pensassi ... figo :) –

1

L'ultima versione di Mono Develop supporta linq. Sul progetto, selezionare 3.5 in Build/General/RuntimeVersion. Successivamente è possibile aggiungere il riferimento a System.Core.

0

Verificare se i riferimenti del progetto su Sistema. Xml.Linq library too