Что делает этот запрос LINQ?

Вот два класса C#...

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);

Я не понимаю запроса: Что означает "Любую" функцию и что делает "=>" оператор, делают?

Кто-то может объяснить меня, что продолжается в этом коде?Спасибо!

5
задан Slauma 10 February 2010 в 20:18
поделиться

5 ответов

Вероятно, вы можете использовать инъекцию зависимостей и ввести статическое свойство для класса аспектов, где вы решите, какой тип поставщика доступа к базе данных вы будете использовать (например, используя фабрику), установив поддельный в области теста.

-121--1862566-

Короткий ответ: «нет».

К моменту чтения файла .emacs был сделан выбор: использовать графический или неграфический дисплей.

Возможно, псевдоним оболочки лучше подходит для ваших потребностей

alias emacs 'emacs -nw'

Вы можете подтвердить это, добавив

(y-or-n-p "Sourcing .emacs...")

в верхней части вашего .emacs и запустить как графические, так и неграфические варианты Emacs, в любом случае вы получите подсказку после появления Emacs (графически или неграфически).

-121--4746297-

Строка

a => a.Country == "F"

будет преобразована в нечто подобное, если это будет отдельная инструкция LINQ:

From a as Adress in t.TravelRoute
Where a.Country = "F"
Select a

Другими словами, он вернет значение true, если ЛЮБОЙ из объектов в travelRoute имеет свойство Country в «F»

Hope this help

1
ответ дан 14 December 2019 в 04:37
поделиться

Он выбирает всех путешественников, для которых TravelRoute содержит страну с буквой "F".

Функция Any возвращает истину, если какой-либо из объектов в списке удовлетворяет условию, переданному в функцию. Из сигнатуры метода видно, что он принимает делегат Func <> , который возвращает bool . Это означает, что он принимает любой метод, который вернет логическое значение, включая предоставленное лямбда-выражение.

Это отличается от Где , который будет фильтровать в соответствии с переданным условием.

=> - это лямбда-выражение . В данном конкретном случае это ярлык для записи анонимного делегата .

7
ответ дан 14 December 2019 в 04:37
поделиться

=> используется в C# lambdas.

0
ответ дан 14 December 2019 в 04:37
поделиться

Any - это метод фильтра, который говорит: "Принимать любые элементы, которые соответствуют следующим критериям." Бизнес a => ... означает "Учитывая параметр a, вот метод" - как сказали другие, он используется для лямбда-выражений. Edit: changed "property" to "parameter"

0
ответ дан 14 December 2019 в 04:37
поделиться

Это лямбда-выражение. http://msdn.microsoft.com/en-us/library/bb397687.aspx Похоже, он выбирает всех путешественников, у которых есть любой маршрут. в "F", что предположительно является страной.

0
ответ дан 14 December 2019 в 04:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: