Aquí hay dos clases de C# ...¿Qué hace esta consulta LINQ?
public class Address
{
public string Country;
public string City;
}
public class Traveller
{
public string Name;
public List<Address> TravelRoute;
}
... y una lista de datos (llenas en alguna parte) ...
List<Traveller> Travellers;
... y entonces esta consulta LINQ:
var result = from t in Travellers
where t.TravelRoute.Any(a => a.Country == "F")
select t;
foreach (var t in result)
System.Console.WriteLine(t.Name);
No entiendo la consulta: ¿Qué significa la función "Cualquiera" y qué hace el operador "=>"?
¿Alguien me puede explicar lo que está pasando en este código? ¡Gracias!
Entonces, ¿significa que esta "expresión lambda" es solo una abreviación de otra consulta LINQ "anidada"? ¿Solo algo para escribir código más compacto? – Slauma
La expresión lambda, también conocida como expresión en línea, generalmente se escribe para una función única y suele ser más compacta. No tiene que especificar un tipo para el argumento, ya que lo deducirá. Yo digo que sí, puedes reemplazarlo con un LINQ anidado, pero no conozco lo suficiente a LINQ como para decir que escribir el LINQ que escribí en otro LINQ funcionará así. –
Para ser más exactos, la expresión lambda también se puede traducir a un árbol de expresiones que el proveedor de LINQ utiliza para traducir a otro código, como una expresión SQL. –