Te mostramos la utilidad de Linq, una de las features más alucinantes que tiene tanto C# como .NET.
Ejemplo de uso de Linq
Para mostraros el funcionamiento de Linq, vamos a utilizar Visual Studio, que es la herramienta más usada para C#. En la misma hemos creado una pequeña aplicación que sirve para recuperar clientes, y que utilizaremos como ejemplo, que sería la siguiente:
class Program
{
static void Main(string[] args)
{
var clients = GetClients();
Console.ReadKey();
}
static List<client> GetClients()
{
Si quisiéramos filtrar estos clientes por la cantidad de salario que tuvieran, lo habitual es crear un bucle, hacer una comparación y verificar, por ejemplo, quién gana más de 20000 dólares o euros, para después recoger esa lista. Esto se haría de esta forma.
class Program
{
static void Main(string[] args)
{
var clients = GetClients();
foreach(var client in clients)
{
if(client.Salary > 20000)
{
}
Console.ReadKey();
}
static List<client> GetClients()
{
A muchos os resultará familiar este tipo de estructuras de código si trabajáis con lenguajes como C o Java, y que resulta bastante tedioso.
Sin embargo, una de las features más alucinantes de C# y que todo el mundo utiliza, Linq, nos va a permitir la sentencia de código anterior en algo tan sencillo como lo siguiente:
class Program
{
static void Main(string[] args)
{
var clients = GetClients();
var clientsWithSalary = clients.Where(x => x.Salary > 20000);
Console.ReadKey();
}
static List<client> GetClients()
{
De esta forma cambiamos varias líneas de código por solo una, siendo además mucho más funcional, más rápido y más legible.
Por ejemplo si quisiésemos obtener de esos clientes su nombre y apellidos, normalmente con otros lenguajes lo haríamos de esta forma:
class Program
{
static void Main(string[] args)
{
var clients = GetClients();
var clientsWithSalary = clients.Where(x => x.Salary > 20000);
foreach(var client in clients)
{
string nameAndSurname = client.Name + client.Surname;
}
Console.ReadKey();
}
static List<client> GetClients()
{
Mientras que gracias a Linq podríamos hacerlo de esta otra forma
class Program
{
static void Main(string[] args)
{
var clients = GetClients();
var clientsWithSalary = clients.Where(x => x.Salary > 20000);
var clientsWithNameAndSurname = clients.Select(x => $”{x.Name} {x.Surname}”);
Console.ReadKey();
}
static List<client> GetClients()
{
De nuevo podemos convertir en una sola línea lo que en otros lenguajes nos ocuparía varias líneas, que además de todos los procesos que se ahorran en caso de querer cambiar algo, por ejemplo, querer obtener el nombre, el apellido y además el domicilio.
Además, si quisiéramos ordenar los resultados, con Linq podemos hacerlo de forma muy sencilla y escribiendo una única línea.
class Program
{
static void Main(string[] args)
{
var clients = GetClients();
var clientsWithSalary = clients.Where(x => x.Salary > 20000);
var clientsWithNameAndSurname = clients.Select(x => $”{x.Name} {x.Surname}”);
.OrderBy(x => x);
Console.ReadKey();
}
static List<client> GetClients()
{
Si quieres ampliar tus conocimientos de C# puedes hacer este curso de C# básico de nuestro profesor José Manuel Montero.
Recuerda que puedes comenzar este curso con tu suscripción de OpenWebinars. Si todavía no estás suscrito, aprovecha para hacerlo ahora.