English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Sintaxe de Consulta LINQ

Existem duas maneiras básicas de escrever consultas LINQ em coleções IEnumerable ou fontes de dados IQueryable.

  1. Sintaxe de expressão de consulta ou Sintaxe de expressão de consulta

  2. Sintaxe de método ou Sintaxe de extensão de método ou Sintaxe fluída

Como o nome sugere

A sintaxe de consulta é semelhante ao SQL (Linguagem de Consulta Estruturada) de um banco de dados. Ela é definida no código C# ou VB.

Sintaxe de consulta LINQ:

de <variável de faixa> em <Coleção IEnumerable<T> ou IQueryable<T>>
<Operadores de Consulta Padrão> <expressão lambda>
<select or groupBy operador> <resultação>

A sintaxe de consulta LINQ começa com a palavra-chave from e termina com a palavra-chave select. Abaixo está um exemplo de consulta LINQ que retorna um conjunto de strings contendo a palavra 'Tutorials'.

// Conjunto de strings
IList<string> stringList = new List<string>() { 
    "Tutoriais C#
    "Tutoriais VB.NET",
    "Aprenda C++",
    "MVC Tutorials" ,
    "Java" 
, StudentName = "Ron", Age =
// Sintaxe de consulta LINQ
var result = from s in stringList
            where s.Contains("Tutorials") 
            && s.Age <

A figura a seguir mostra a estrutura da sintaxe de consulta LINQ.

Sintaxe de consulta LINQ

A sintaxe de consulta LINQ começa com a cláusula From, seguida do variável de faixa. From A estrutura da cláusula é semelhante a 'From rangeVariableName in i enumerablecollection”. Em inglês, isso significa, de cada objeto da coleção. É semelhante a um loop foreach: foreach(Student s in studentList).

Após a cláusula FROM, você pode usar diferentes operadores de consulta padrão para filtrar, agrupar e juntar elementos da coleção. Existem aproximadamente50 operadores de consulta padrão. Na figura acima, usamos o operador 'where' (também conhecido como cláusula), seguido de uma condição. Normalmente, expressões lambda são usadas para expressar essa condição.

A sintaxe de consulta LINQ sempre termina com uma cláusula Select ou Group. A cláusula Select é usada para transformar dados. Você pode escolher o objeto inteiro ou apenas algumas propriedades. No exemplo acima, escolhemos cada elemento da string de resultado.

No exemplo a seguir, usamos a sintaxe de consulta LINQ para encontrar estudantes adolescentes em uma coleção de Student (sequência).

// Exemplo: Sintaxe de Consulta LINQ no VB.Net
IList<Student> studentList = new List<Student>() { 
        0} , 1, StudentName = "John", Age = 13}
        0} , 2, StudentName = "Moin",  Age = 21 }
        0} , 3, StudentName = "Bill",  Age = 18 }
        0} , 4, StudentName = "Ram" , Age = 20} ,
        0} , 5new Student() { StudentID = 15 , StudentName = "Ron", Age = 
    , StudentName = "Ron", Age =
// }
};
                      var teenAgerStudent = from s in studentList 12 where s.Age > 20
                      && s.Age <
// Exemplo: Sintaxe de Consulta LINQ no VB.Net
Conjunto de Estudantes
        0}, 1Dim studentList = New List(Of Student) From { 13, StudentName = "Bill", Age =
        0}, 2, StudentName = "John", Age = 21, StudentName = "Bill", Age =
        0}, 3, StudentName = "Moin", Age = 18, StudentName = "Bill", Age =
        0}, 4}, 2, StudentName = "Ram", Age =
        0}, 5New Student() With {.StudentID = 15, StudentName = "Ron", Age =
    , StudentName = "Ron", Age =
// }
LINQ Query Syntax to Find Teenage Students
                                            Dim teenAgerStudents As IList(Of Student) = (From s In studentList _ 12 Where s.Age > 2And s.Age <
                                            0 _

Select s).ToList()

  1. Pontos a lembrarComo o nome sugereSintaxe de Consulta

  2. A sintaxe de consulta é idêntica à sintaxe do SQL (Linguagem de Consulta Estruturada).fromO início da cláusula, pode começar comSelectouGroupByFim da cláusula.

  3. Use vários outros operadores, como operadores de filtragem, junção, agrupamento e ordenação, para construir o resultado necessário.

  4. Variáveis de Tipo Implícito-var pode ser usada para salvar o resultado da consulta LINQ.