PR

[C# LINQ] 配列やSelect、Whereした結果をリストに変換する

LINQのToListメソッドを使うと配列やSelect、Whereメソッドの結果(IEnumerable型)をList型に変換することができます。

スポンサーリンク

ToListメソッドの使い方

ToListメソッドに引数はありません、戻り値は変換されたリストが返ってきます。

ToListメソッドをSelect、Whereメソッドの結果に対して使った場合、即時評価されます。そのためSelect、Whereメソッドをすぐに実行しておきたいときにも使われます。

using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
    public static void Main()
    {
        // 配列の宣言と初期化
        SampleData[] ary = new SampleData[] {
            new SampleData { Data1 = 10, Data2 = 2, Data3 = 3 },
            new SampleData { Data1 = 20, Data2 = 5, Data3 = 6 },
            new SampleData { Data1 = 30, Data2 = 8, Data3 = 9 },
        };

        // 配列をリストに変換
        List<SampleData> list = ary.ToList();

        // Selectしてその結果をリストに変換
        // ↓はSelectした結果が匿名クラスのリストになるため var でうけとる
        var selectList = list.Select(sd => new { sd.Data1, sd.Data3 }).ToList();

        // Seletしたリストを表示
        Console.WriteLine("Seletしたリストを表示");
        foreach (var item in selectList) {
            Console.WriteLine($"Data1={item.Data1}, Data3={item.Data3}");
        }

        // Whereしてその結果をリストに変換
        List<SampleData> whereList = list.Where(sd => sd.Data2 % 2 == 0).ToList();

        // Whereしたリストを表示
        Console.WriteLine("Whereしたリストを表示");
        foreach (var item in whereList)
        {
            Console.WriteLine($"Data1={item.Data1}, Data2={item.Data2}, Data3={item.Data3}");
        }
    }
}

class SampleData
{
    public int Data1 { get; set; }
    public int Data2 { get; set; }
    public int Data3 { get; set; }
}
Seletしたリストを表示
Data1=10, Data3=3
Data1=20, Data3=6
Data1=30, Data3=9
Whereしたリストを表示
Data1=10, Data2=2, Data3=3
Data1=30, Data2=8, Data3=9

C# 記事まとめページに戻る(他のサンプルコードもこちら)

C# プログラミング講座
C#についての記事まとめページです。開発環境VisualStudioのインストール方法や使い方、プログラミングの基礎知識についてや用語説明の記事一覧になっています。講座の記事にはすぐに実行できるようにサンプルコードを載せています。

コメント