エンジニア プログラミング

LINQ to Objectsとは?—手軽にコレクションを操作できる便利機能

LINQ to Objects(リンク・トゥ・オブジェクト)は、C#やVB.NETなどの.NET言語において、コレクション(配列やリストなどのオブジェクト)を簡単に操作するための機能です。LINQ(Language Integrated Query)は、データ操作を簡潔に行えるように設計されており、データベースだけでなく、オブジェクトに対してもクエリ操作ができるのがLINQ to Objectsの魅力です。

この記事では、LINQ to Objectsの基本概念から具体的な使用方法まで、詳しく解説します!

LINQ to Objectsの主なクエリ演算子

LINQには多くの便利なクエリ演算子がありますが、特に頻繁に使われるものをいくつか紹介します。

1. Where

特定の条件に合う要素をフィルタリングする演算子です。
例えば、リストから特定の条件に合ったデータを取得したい場合に使います。

int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var evenNumbers = numbers.Where(n => n % 2 == 0);
foreach (var number in evenNumbers)
{
    Console.WriteLine(number);
}

2. Select

要素を加工して新しい結果を返すための演算子です。
例えば、オブジェクトのプロパティだけを取り出す場合などに使います。

string[] names = { "Alice", "Bob", "Charlie", "David", "Eve" };
var nameLengths = names.Select(name => name.Length);
foreach (var length in nameLengths)
{
    Console.WriteLine(length);
}

3. OrderBy/OrderByDescending

要素を昇順や降順に並べ替えるために使います。
昇順の場合はOrderBy、降順の場合はOrderByDecendingです。下記コードは昇順ソートですね。

int[] numbers = { 5, 2, 8, 1, 9, 3, 7, 4, 6 };
var sortedNumbers = numbers.OrderBy(n => n);
foreach (var number in sortedNumbers)
{
    Console.WriteLine(number);
}

4. FirstOrDefault/LastOrDefault

条件に一致する最初(First)や最後(Last)の要素を取得するために使います。
条件に一致しない場合は要素のデフォルト値が返却されます。intなら0、stringならnullといった感じです。

int[] numbers = { 5, 2, 8, 1, 9, 3, 7, 4, 6 };
var evenNumber = numbers.FirstOrDefault(n => n % 2 == 0);
Console.WriteLine(evenNumber);

まとめ

LINQ to Objectsは、C#やVB.NETでオブジェクトコレクションを操作する際に非常に便利な機能です。
クエリを使って直感的にデータを操作できるため、コードの可読性やメンテナンス性が向上します。ただし、特に大規模なデータセットを扱う場合は、パフォーマンスに注意しながら使用することが大切です。

日常的なコレクション操作がもっと簡単になり、コーディングの効率が上がること間違いなしですね!

  • この記事を書いた人

あるせ

上場ゲーム会社の現役プログラマーで1児の父です。 プログラミングを始めたい方向けのライトな記事からゲーム開発の現場で得た知見まで幅広く発信します!

PickUp

1

はじめに Google Geminiは、Googleが提供する高性能なAIモデルです。今回は、Google Apps Script(GAS)を使ってGoogle GeminiのAPIを呼び出す方法を紹 ...

2

Cursorとは? Cursorは、AIを利用したコード補完ツールで、プログラムを書く際に提案をしてくれるだけでなく、指示に基づいてコードを生成してくれます。スクリプトを自動生成したり、バグの修正やリ ...

3

bool変数の命名の重要性 プログラムを書くとき、bool型の変数名の付け方はとても重要です!なぜなら、コードを読む人にとって、変数名からその役割が直感的に分かることが求められるからです。bool値は ...

4

記事文章 はじめに WordPressを使ってブログを運営していると、毎回アイキャッチ画像を設定するのが手間ですよね!今回は、アイキャッチ画像を自動で生成するプラグインの作り方をご紹介します。これで作 ...

5

第1位: SourceTree SourceTreeは、無料で使える高機能なGitクライアントです。直感的なUIで操作がしやすく、初めてGitを使う人にもぴったり!ブランチの管理やマージが簡単にできる ...

6

はじめに インターネットの回線速度が気になることってありますよね!今回は、5分ごとに回線速度を計測し、そのデータをグラフにする方法を紹介します。PythonとSpeedtest CLIを使えば、比較的 ...

7

Pythonで画像ファイルを連番リネームをしてみたのでやった方法について記載します!連番リネームは、画像を整理する際や特定の用途に合わせてファイル名を統一したいときに便利です。 Pythonでの連番リ ...

-エンジニア, プログラミング
-, ,