Looking for c# Keywords? Try Ask4Keywords

C# Language основы


пример

LINQ в значительной степени полезен для запросов к коллекциям (или массивам).

Например, учитывая следующие примеры данных:

var classroom = new Classroom
{
    new Student { Name = "Alice", Grade = 97, HasSnack = true  },
    new Student { Name = "Bob",   Grade = 82, HasSnack = false },
    new Student { Name = "Jimmy", Grade = 71, HasSnack = true  },
    new Student { Name = "Greg",  Grade = 90, HasSnack = false },
    new Student { Name = "Joe",   Grade = 59, HasSnack = false }
}

Мы можем «запросить» эти данные с помощью синтаксиса LINQ. Например, чтобы получить всех студентов, которые сегодня перекусывают:

var studentsWithSnacks = from s in classroom.Students
                         where s.HasSnack
                         select s;

Или, чтобы получить студентов со степенью 90 или выше и только вернуть их имена, а не полный объект Student :

var topStudentNames = from s in classroom.Students
                      where s.Grade >= 90
                      select s.Name;

Функция LINQ состоит из двух синтаксисов, которые выполняют одни и те же функции, имеют почти идентичную производительность, но написаны очень по-разному. Синтаксис в приведенном выше примере называется синтаксисом запроса . Следующий пример, однако, иллюстрирует синтаксис метода . Те же данные будут возвращены, как в приведенном выше примере, но способ записи запроса отличается.

var topStudentNames = classroom.Students
                               .Where(s => s.Grade >= 90)
                               .Select(s => s.Name);