LINQ (Language Integrated Query) es una característica en C# que permite realizar consultas de manera integrada directamente en el código, ya sea en colecciones en memoria, bases de datos, XML y otros tipos de datos. A continuación, te mostraré cómo usar LINQ para realizar consultas en colecciones y bases de datos en C#.
Consultas en Colecciones
Podemos usar LINQ para realizar consultas en colecciones en memoria, como List, Array, etc.
using System;
using System.Linq;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
List<int> numeros = new List<int> { 1, 2, 3, 4, 5, 6 };
// Consulta para obtener números pares
var numerosPares = from num in numeros
where num % 2 == 0
select num;
foreach (var num in numerosPares)
{
Console.WriteLine(num);
}
}
}
Consultas en Bases de Datos
También podemos usar LINQ para realizar consultas en bases de datos utilizando Entity Framework u otros ORM (Object-Relational Mapping).
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
// Crear un contexto de base de datos (Entity Framework)
using (var dbContext = new MyDbContext())
{
// Consulta para obtener los usuarios mayores de 30 años
var usuarios = from u in dbContext.Usuarios
where u.Edad > 30
select u;
foreach (var usuario in usuarios)
{
Console.WriteLine($"{usuario.Nombre} tiene {usuario.Edad} años.");
}
}
}
}
Métodos de Extensión en LINQ
Además de la sintaxis de consulta, LINQ también ofrece métodos de extensión que puedes encadenar para realizar consultas.
using System;
using System.Linq;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
List<int> numeros = new List<int> { 1, 2, 3, 4, 5, 6 };
// Consulta para obtener números mayores a 3
var numerosMayoresA3 = numeros.Where(num => num > 3);
foreach (var num in numerosMayoresA3)
{
Console.WriteLine(num);
}
}
}
LINQ es una herramienta poderosa que permite escribir consultas de manera más legible y mantenible en C#, tanto para colecciones en memoria como para bases de datos.