【C#】LINQのSelectメソッドの使い方を解説

C#におけるLINQは、データ処理を簡素化するための便利なツールです。特に、コレクションから特定のデータを抽出したり、変換したりする際に便利なのがSelect メソッドです。このメソッドを使うことで、コードの可読性が向上し、データ操作の効率を大幅に引き上げることができます。

本記事では、Select メソッドの基本的な使い方から、実践的なユースケースまでを詳しく解説します。これを読めば、LINQを駆使してデータ操作をよりスマートに行う方法が身につくでしょう。

LINQに関する解説はこちらでしています。ぜひご覧ください。

Selectメソッドの基本構文

LINQのSelect メソッドは、コレクションの各要素を変換し、新しいコレクションを生成するために使用されます。基本構文は以下の通りです。

var result = collection.Select(element => transformation);

ここで、collection は変換したい元のコレクション、element は各要素を表す変数、transformationtransformation はその要素に適用する変換処理を示します。この構文を使うことで、元のデータから必要な情報だけを簡潔に抽出することが可能です。

たとえば、以下のような簡単な例を見てみましょう。リストから数値を2倍した新しいリストを作成する場合、次のように記述します。

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
var doubledNumbers = numbers.Select(n => n * 2).ToList();

このコードでは、numbers リストの各要素を2倍に変換し、新しいリストdoubleNumbers を生成しています。

Selectメソッドの応用

LINQのSelect メソッドは、単純な変換だけでなく、複雑な変換にも柔軟に対応しています。これにより、コレクション内のデータを組み合わせたり、複数のプロパティを使って新しいオブジェクトを生成したりすることができます。

例えば、以下のようなPerson クラスがあるとしましょう。

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
}

このクラスのリストから、フルネームと年齢を含む新しいオブジェクトのリストを作成する場合、Select メソッドを次のように使用します。

List<Person> people = new List<Person>
{
    new Person { FirstName = "John", LastName = "Doe", Age = 30 },
    new Person { FirstName = "Jane", LastName = "Smith", Age = 25 },
    new Person { FirstName = "Sam", LastName = "Brown", Age = 40 }
};

var result = people.Select(p => new
{
    FullName = $"{p.FirstName} {p.LastName}",
    Age = p.Age
}).ToList();

このコードでは、people リストの各Person オブジェクトを変換し、FullName プロパティには名と姓を組み合わせた文字列を、Age プロパティにはそのまま年齢を格納する新しい匿名型のオブジェクトを生成しています。結果として得られるresult は、次のようになります。

このように、Select メソッドを使用することで、複雑なデータ変換が可能になり、より意味のある形でデータを扱うことができます。

まとめ

LINQのSelect メソッドは、C#でのデータ変換や抽出において非常に便利なツールです。基本的な使い方から複雑な変換まで、さまざまな場面で効率的にデータを操作できることがわかりました。

Select メソッドを使用することで、コレクションから必要なデータだけを簡潔に抽出し、新しい形に変換することができ、コードの可読性やメンテナンス性も向上します。

本記事がLINQの理解につながりましたら幸いです。

コメント