English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En la sección anterior, ya ha aprendido sobre la sintaxis de consulta de LINQ. Aquí, aprenderá sobre la sintaxis de método.
La sintaxis de método (también conocida como sintaxis de expresión) utiliza métodos de extensión incluidos en las clases estáticas Enumerable o Queryable, de manera similar a cómo llama a un método de extensión de cualquier clase.
El compilador convierte la sintaxis de consulta en sintaxis de método en tiempo de compilación.
A continuación se muestra un ejemplo de consulta de sintaxis de método de LINQ que devuelve un conjunto de cadenas que contiene la palabra "Tutorials".
// Conjunto de cadenas IList<string> stringList = new List<string>() { "Tutoriales C#", "Tutoriales VB.NET", "Aprender C++", "MVC Tutorials" , "Java" }; // Sintaxis de consulta de LINQ var result = stringList.Where(s => s.Contains("Tutorials"));
La siguiente imagen ilustra la estructura de la sintaxis de método de LINQ.
Como se muestra en la imagen anterior, la sintaxis de método incluye métodos de extensión y expresiones lambda. El método de extensión Where () definido en la clase Enumerable.
Si verifica la firma del método de extensión Where, se encontrará que el método Where acepta un Delegado predicate Func<Student,bool>。Esto significa que puede pasar cualquier función delegada que acepte un objeto Student como parámetro de entrada y devuelva un valor booleano, como se muestra en la siguiente imagen. La expresión lambda se utiliza como función delegada pasada a la cláusula Where. En la siguiente sección aprenderá sobre expresiones lambda.
El siguiente ejemplo muestra cómo usar la sintaxis de método de LINQ con conjuntos IEnumerable <T>.
// Conjunto de estudiantes 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, NombreEstudiante = "Bill", Edad = 18 } new Student() { StudentID = 4, NombreEstudiante = "Ram", Edad = 20}, new Student() { StudentID = 5, NombreEstudiante = "Ron", Edad = 15 } }; // Encontrar estudiantes adolescentes con la sintaxis de método LINQ var teenAgerStudents = studentList.Where(s => s.Edad > 12 Y s.Edad < 20) .ToList<Student>();
// Conjunto de estudiantes Dim studentList = New List(Of Student) From { New Student() With { .StudentID = 1, .NombreEstudiante = "John", .Edad = 13} New Student() With { .StudentID = 2, .NombreEstudiante = "Moin", .Edad = 21} New Student() With { .StudentID = 3, .NombreEstudiante = "Bill", .Edad = 18} New Student() With { .StudentID = 4, .NombreEstudiante = "Ram", .Edad = 20}, New Student() With { .StudentID = 5, .NombreEstudiante = "Ron", .Edad = 15} } // Encontrar estudiantes adolescentes con la sintaxis de método LINQ Dim teenAgerStudents Como IList(Of Student) = studentList.Where(Function(s) s.Edad > 12 Y s.Edad < 20) .ToList()
Como su nombre indicaSintaxis de métodoAl igual que llamar a métodos de extensión.
LINQSintaxis de métodoTambién se llama sintaxis fluida (sintaxis continua), porque permite una serie de llamadas a métodos de extensión.
Variable de tipo implícito-La variable var se puede usar para guardar el resultado de la consulta LINQ.