0Pricing
C# Academy · レッスン

Select、Where、OrderBy、Take/Skip

Whereでフィルターし、Selectで変換し、OrderBy/ThenByで並べ替え、Take/Skipでページングします。シンプルで読みやすいチェーンを作ります。

「Select、Where、OrderBy、Take/Skip」はCoddyKit上の無料C# Academyレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これは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を使い、必要に応じてDescendingを追加します。

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による射影は後に行います(フィルタリングや並べ替えの後)。
  • 予測可能な結果を得るため、Take/Skipの前にOrderByを使います。
  • 各ステップを小さくし、わかりやすい名前を付けます。

フィルター演算子の名前

確認: 述語でシーケンスをフィルタリングする LINQ 演算子はどれですか?

要約

要約: フィルタリングにはWhere、射影にはSelect、並べ替えにはOrderBy/ThenBy、ページ分割にはTake/Skipを使います。パイプラインは小さく、読みやすく保ちます。

よくある質問

「Select、Where、OrderBy、Take/Skip」レッスンは無料ですか?

はい。「Select、Where、OrderBy、Take/Skip」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C# Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C# Academyコースには全3レッスンが含まれています。

「Select、Where、OrderBy、Take/Skip」で何を学びますか?

Whereでフィルターし、Selectで変換し、OrderBy/ThenByで並べ替え、Take/Skipでページングします。シンプルで読みやすいチェーンを作ります。 ブラウザで直接実行するハンズオンコードでC# Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

C# Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのC# Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン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に戻る