📝
C# LINQ入門 - データ操作の基本構文
LINQ(Language Integrated Query)は、C#でデータベースやコレクションを簡潔に操作できるツールです。本記事ではLINQの基本構文を具体例とともに紹介し、データ操作に役立つメソッドの使い方を解説します。
LINQとは?
LINQは、C#や.NET環境で使用できる統合クエリ言語です。データベース(Entity Framework Coreを使用)、コレクション、XMLなど、さまざまなデータソースに対して同じ構文でクエリを記述できます。
LINQを使うメリット
- コードが簡潔になる: 複雑なデータ操作を数行で記述可能。
- 統一された構文: 複数のデータソースに対して一貫性のある書き方。
- 高い可読性: SQLライクなスタイルでデータ操作が直感的に理解可能。
基本構文とメソッドの解説
以下にLINQの代表的なメソッドを紹介し、実際のデータ操作例を示します。
使用するデータおよびソース
環境セットアップなど、細かい手順は下記記事を参照してください。
Where: 条件検索
指定した条件に一致するデータをフィルタリングします。
var booksByOrwell = context.Books
.Where(b => b.Author.Name == "George Orwell")
.ToList();
foreach (var book in booksByOrwell)
{
Console.WriteLine(book.Title);
}
結果:
1984
Animal Farm
OrderBy / OrderByDescending: 並べ替え
データを昇順または降順に並べ替えます。
var sortedBooks = context.Books
.OrderBy(b => b.Title)
.ToList();
foreach (var book in sortedBooks)
{
Console.WriteLine(book.Title);
}
結果:
1984
Animal Farm
Clean Code
Select: 必要な列の抽出
データの一部を取得する際に使用します。
var bookTitles = context.Books
.Select(b => b.Title)
.ToList();
foreach (var title in bookTitles)
{
Console.WriteLine(title);
}
結果:
1984
Animal Farm
Clean Code
Count: データ件数の取得
指定した条件のデータ件数を取得します。
var count = context.Books
.Count(b => b.Author.Name == "George Orwell");
Console.WriteLine($"George Orwell's books: {count}");
結果:
George Orwell's books: 2
GroupBy: データのグループ化
データを特定のキーでグループ化します。
var booksGroupedByAuthor = context.Books
.GroupBy(b => b.Author.Name)
.Select(group => new
{
Author = group.Key,
BookCount = group.Count()
});
foreach (var group in booksGroupedByAuthor)
{
Console.WriteLine($"{group.Author}: {group.BookCount} books");
}
結果:
George Orwell: 2 books
Robert C. Martin: 1 book
実践例: 複数のメソッドを組み合わせる
以下は、条件検索・並べ替え・グループ化を組み合わせた実践例です。
var sortedAuthorsWithBookCount = context.Authors
.Select(a => new
{
Author = a.Name,
BookCount = a.Books.Count
})
.OrderByDescending(a => a.BookCount)
.ToList();
foreach (var author in sortedAuthorsWithBookCount)
{
Console.WriteLine($"{author.Author}: {author.BookCount} books");
}
結果:
George Orwell: 2 books
Robert C. Martin: 1 book
まとめ
本記事では、LINQを使ったデータ操作の基本構文を紹介しました。以下のメソッドについて解説しました:
条件検索: Where
並べ替え: OrderBy / OrderByDescending
必要な列の抽出: Select
集計: Count
グループ化: GroupBy
LINQは、データベースやコレクションを扱う際に非常に便利なツールです。実際のプロジェクトや業務で活用するために、この記事の内容をぜひ参考にしてください!
Discussion