0Pricing
C# Academy · Урок

Select, Where, OrderBy, Take/Skip

Фильтруйте с помощью Where, преобразуйте с помощью Select, сортируйте с помощью OrderBy/ThenBy и разбивайте результаты на страницы с Take/Skip. Простые и понятные цепочки.

«Select, Where, OrderBy, Take/Skip» — бесплатный урок C# Academy на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 3 уроков всего.

Роли операторов

Роли:

  • Where фильтрует
  • Select преобразует
  • OrderBy/ThenBy сортируют
  • Take/Skip разбивают результаты на страницы

Сохраняйте цепочки короткими и понятными.

Фильтрация с помощью Where

Where оставляет элементы, удовлетворяющие условию (предикату).

using System;
using System.Linq;

public class Program
{
  public static void Main(string[] args)
  {
    int[] nums = new int[] { 1, 2, 3, 4, 5, 6 };

    var evens = nums.Where(n => n % 2 == 0);

    foreach (int n in evens)
    {
      Console.WriteLine(n); // 2 4 6
    }
  }
}

Проекция с помощью Select

Select преобразует каждый элемент в новое значение (проекцию).

using System;
using System.Linq;

public class Program
{
  public static void Main(string[] args)
  {
    string[] words = new string[] { "cat", "lion", "tiger" };

    var lengths = words.Select(w => w.Length); // transform to lengths

    foreach (int len in lengths)
    {
      Console.WriteLine(len); // 3 4 5
    }
  }
}

Сортировка результатов

Используйте сначала OrderBy, а затем ThenBy для сортировки по нескольким ключам; при необходимости добавляйте сортировку по убыванию.

using System;
using System.Linq;

public sealed class City
{
  public string Name;
  public int Population;
  public City(string name, int pop) { Name = name; Population = pop; }
}

public class Program
{
  public static void Main(string[] args)
  {
    City[] cities = new City[]
    {
      new City("Rome", 2873000),
      new City("Oslo", 634000),
      new City("Riga", 605000),
      new City("Rio", 6748000)
    };

    var sorted = cities
      .OrderBy(c => c.Name)             // primary
      .ThenByDescending(c => c.Population); // secondary

    foreach (City c in sorted)
    {
      Console.WriteLine(c.Name + " - " + c.Population);
    }
  }
}

Разбиение на страницы с помощью Take/Skip

Skip пропускает элементы; Take возвращает фиксированное количество. Вместе они реализуют разбиение на страницы.

using System;
using System.Linq;

public class Program
{
  public static void ShowPage(int[] data, int page, int pageSize)
  {
    var pageItems = data
      .OrderBy(x => x)           // define a consistent order
      .Skip((page - 1) * pageSize)
      .Take(pageSize);

    Console.WriteLine("Page " + page + ":");
    foreach (int x in pageItems) Console.WriteLine(x);
  }

  public static void Main(string[] args)
  {
    int[] nums = new int[] { 9, 1, 5, 2, 7, 3, 8, 6, 4 };
    ShowPage(nums, 1, 3); // 1 2 3
    ShowPage(nums, 2, 3); // 4 5 6
  }
}

Советы по созданию цепочек

Советы:

  • Рано выполняйте фильтрацию с помощью Where.
  • Выполняйте проекцию поздно, с помощью Select (после фильтрации и сортировки).
  • Используйте OrderBy перед Take/Skip для предсказуемых результатов.
  • Делайте каждый шаг небольшим и давайте ему понятное имя.

Название оператора фильтрации

Быстрая проверка: какой оператор LINQ фильтрует последовательность по предикату?

Повторение

Повторение: используйте Where для фильтрации, Select для проекции, OrderBy/ThenBy для сортировки и Take/Skip для разбиения на страницы. Сохраняйте pipeline небольшими и понятными.

Часто задаваемые вопросы

Урок «Select, Where, OrderBy, Take/Skip» бесплатный?

Да — полный текст урока «Select, Where, OrderBy, Take/Skip» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 3 уроков всего.

Чему я научусь в уроке «Select, Where, OrderBy, Take/Skip»?

Фильтруйте с помощью Where, преобразуйте с помощью Select, сортируйте с помощью OrderBy/ThenBy и разбивайте результаты на страницы с Take/Skip. Простые и понятные цепочки. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C# Academy?

Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 3.

Сколько времени занимает урок «Select, Where, OrderBy, Take/Skip»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C# Academy?

Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Конвейеры IEnumerable и отложенное выполнение
  2. Select, Where, OrderBy, Take/Skip
  3. Синтаксис запросов и синтаксис методов
← Назад к C# Academy