English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ci sono due metodi principali per scrivere query LINQ in un insieme IEnumerable o in una sorgente dati IQueryable.
Sintassi di query o sintassi dell'espressione di query
Sintassi di metodo o estensione di metodo o sintassi fluente
La sintassi di query è simile al linguaggio SQL (Structured Query Language) dei database. È definita nel codice C# o VB.
Sintassi di query LINQ:
from <variabile di intervallo> in <IEnumerable<T> o IQueryable<T> Collection> <Operatori di query standard> <espressione lambda> <operatore select o groupBy> <formazione del risultato>
La sintassi di query LINQ inizia con la parola chiave from e termina con la parola chiave select. Ecco un esempio di query LINQ che restituisce un insieme di stringhe contenenti la parola "Tutorials".
// Set di stringhe IList<string> stringList = new List<string>() { "C# Tutorials", "VB.NET Tutorials", "Impara C++", "MVC Tutorials", "Java" }; // Query syntax di LINQ var result = from s in stringList where s.Contains("Tutorials") select s;
La figura sottostante mostra la struttura della sintassi di query LINQ.
La sintassi di query inizia con la clausola FROM, seguita da un variabile di intervallo. From enumerablecollection
Dopo la clausola FROM, puoi utilizzare diversi operatori di query standard per filtrare, raggruppare e unire gli elementi della raccolta. Ci sono circa 50 operatori di query standard in LINQ. Nell'immagine sopra, abbiamo utilizzato l'operatore "where" (noto anche come clausola), seguito da una condizione. Di solito si utilizza un'espressione lambda per esprimere questa condizione.
La sintassi di query LINQ termina sempre con una clausola Select o Group. La clausola Select viene utilizzata per trasformare i dati. Puoi selezionare l'intero oggetto o solo alcune proprietà. Nell'esempio sopra, abbiamo selezionato ogni elemento di stringa di risultato.
Negli esempi seguenti, utilizziamo la sintassi di query LINQ per trovare studenti adolescenti nella raccolta Student (sequenza).
Esempio: sintassi delle query LINQ in VB.Net IList<Student> studentList = new List<Student>() { new Student() { StudentID = 1, StudentName = "John", Age = 13} , new Student() { StudentID = 2, StudentName = "Moin", Age = 21 } , new Student() { StudentID = 3, StudentName = "Bill", Age = 18 } , new Student() { StudentID = 4, StudentName = "Ram", Age = 20 } , new Student() { StudentID = 5, StudentName = "Ron", Age = 15 } }; } var teenAgerStudent = from s in studentList where s.Age > 12 && s.Age < 20 select s;
Esempio: sintassi delle query LINQ in VB.Net // Set di studenti Dim studentList = New List(Of Student) From { New Student() With {.StudentID = 1, .StudentName = "John", .Age = 13}, New Student() With {.StudentID = 2, .StudentName = "Moin", .Age = 21}, New Student() With {.StudentID = 3, .StudentName = "Bill", .Age = 18}, New Student() With {.StudentID = 4, .StudentName = "Ram", .Age = 20}, New Student() With {.StudentID = 5, .StudentName = "Ron", .Age = 15} } // Trova studenti adolescenti con la sintassi LINQ Dim teenAgerStudents As IList(Of Student) = (From s In studentList _ Where s.Age > 12 And s.Age < 20 _
Punti da ricordareCome suggerisce il nomeSintassi delle query
La sintassi delle query è la stessa della sintassi del SQL (linguaggio di query strutturato).fromInizio della clausola, può iniziare conSelectoGroupByFine della clausola.
Utilizzare vari altri operatori, come operatori di filtraggio, unione, raggruppamento, e di ordinamento per costruire i risultati desiderati.
La variabile di tipo implicito -var può essere utilizzata per salvare i risultati delle query LINQ.