コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【C#】SelectMany関数で複数の配列やリストを1つにまとめる

概要

// トレーナーの情報を管理するクラス
public class Trainer
{
    // 手持ちポケモンのリスト
    public string[] mPokemonList;

    // コンストラクタ
    public Trainer( params string[] pokemonList )
    {
        mPokemonList = pokemonList;
    }
}

private void Awake()
{
    var trainerList = new []
    {
        new Trainer( "フシギダネ", "フシギソウ", "フシギバナ" ), 
        new Trainer( "コラッタ", "ラッタ" ), 
    };

    var pokemonList = trainerList
        .SelectMany( c => c.mPokemonList )
        .ToArray();

    // pokemonList[ 0 ] : フシギダネ
    // pokemonList[ 1 ] : フシギソウ
    // pokemonList[ 2 ] : フシギバナ
    // pokemonList[ 3 ] : コラッタ
    // pokemonList[ 4 ] : ラッタ
}