Вот два C# классы ...Что делает этот запрос LINQ?
public class Address
{
public string Country;
public string City;
}
public class Traveller
{
public string Name;
public List<Address> TravelRoute;
}
... и список данных (заполненные где-то) ...
List<Traveller> Travellers;
... и этот запрос 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);
Я не понимаю вопрос: что означает функция «Any» и что делает оператор «=>»?
Может кто-нибудь объяснить мне, что происходит в этом коде? Благодаря!
Итак, означает ли это, что это «лямбда-выражение» является лишь аббревиатурой для другого «вложенного» запроса LINQ? Только что написать код более компактный? – Slauma
Лямбда-выражение, также известное как встроенное выражение, обычно записывается для одноразовой функции и обычно более компактно. Вам не нужно указывать тип аргумента, поскольку он будет выводить его. Я бы сказал, что да, вы можете заменить его вложенным LINQ, но я не знаю LINQ, чтобы сказать, что запись LINQ, которую я написал в другом LINQ, будет работать именно так. –
Чтобы быть более точным, выражение лямбда также может быть переведено в дерево выражений, которое используется поставщиком LINQ для перевода на другой фрагмент кода, например выражение SQL. –