- 開発技術
C# LINQ:言語統合クエリ
- #LINQ
アプリバージョン開発において、データ処理とクエリは欠かせない部分です。C#はそのプロセスについて、強力なツールを提供しています。LINQ(Language Integrated Query)と呼びます。LINQを使用すると、配列、コレクション、データベース、XMLファイルなど、さまざまなデータソースを簡単にクエリできます。本記事では、LINQの基本概念、使用法について紹介していきます。
LINQの基本構文
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
LINQクエリは通常、クエリ構文とメソッド構文の2つの形式があります。
- メソッド構文:LINQ拡張メソッド(Where、Select、OrderByなど)を使用します。
以下は簡単な例です。
12345List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };var evenNumbers = from n in numberswhere n % 2 == 0select n;// evenNumbers = { 2, 4, 6, 8, 10 } - クエリ構文: SQLに似ており、from、where、selectなどのキーワードを使用します。
以下は同じ例の別の書き方です。
1234List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };var evenNumbers = numbers.Where(n => n % 2 == 0);// evenNumbers = { 2, 4, 6, 8, 10 }
LINQの一般的な操作
LINQは多くの操作を提供しています。以下は一般的なLINQメソッドのいくつかです:
・Where:データをフィルタリングします。
・Select:データの特定のプロパティを選択します。
・OrderBy:データをソートします。
・GroupBy:データをグループ化します。
・Join:2つのデータソースを結合します。
・Distinct:重複項目を削除します。
・Count:データ項目の数をカウントします。
メソッドの使用例
1 2 3 4 5 6 7 8 9 10 |
var students = new List<Student> { new Student { Name = "John", Grade = "B" }, new Student { Name = "Charlie", Grade = "A" }, new Student { Name = "Mary", Grade = "C" }, new Student { Name = "Alice", Grade = "B" } }; var names = students.Where(s => s.Grade == "B").Select(s => s.Name); //names = { "John", "Mary" } |
※上記の例で使用されるクラスの定義
1 2 3 4 5 |
class Student { public string Name { get; set; } public string Grade { get; set; } } |
LINQの利点
- 可読性:LINQの構文は簡潔で明確であり、理解しやすいです。
- 統一性:データソースに関係なく、LINQは一貫したクエリ方法を提供します。
- 強い型チェック:LINQはコンパイル時に型チェックを行い、実行時エラーの可能性を減らします。
結論
LINQはC#における開発に有益なツールであり、データクエリをシンプルにします。メモリ内のコレクションを処理する場合でも、データベースと対話する場合でも、LINQは一貫して効率的な解決策を提供します。本記事を通じて、LINQについてより深く理解し、実際の開発でこの技術を活用できることを願っています。LINQは生産性を向上させるためのツールです。
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>