コレクションとコレクションを結合するには、.Concat()メソッドを使用します。
構文
構文
<結果> = <コレクション型の値1>.Concat(<コレクション型の値2>);
結合するコレクションの型は同じである必要があります。
戻り値の型はIEnumerable型です。
サンプル
例1)List型の値を結合する
using System;
using System.Collections.Generic;
using System.Linq;
//List型を生成する
var list1 = new List<string>() { "東京", "大阪", "名古屋" };
var list2 = new List<string>() { "札幌", "仙台", "福岡" };
//List型を結合してList型で取得する
var result = list1.Concat(list2).ToList();
結果
"東京"
"大阪"
"名古屋"
"札幌"
"仙台"
"福岡"
例2)Dictionary型の値を結合する
using System;
using System.Collections.Generic;
using System.Linq;
//Dictionary型を生成する
var dic1 = new Dictionary<string, string>() {
{"東京", "東京都"},
{"大阪", "大阪府"},
{"名古屋", "愛知県"}
};
var dic2 = new Dictionary<string, string>(){
{"札幌", "北海道"},
{"仙台", "宮城県"},
{"福岡", "福岡県"}
};
//Dictionary型を結合してDictionary型で取得する
var result = dic1.Concat(dic2).ToDictionary(x => x.Key, x => x.Value);
結果
{"東京", "東京都"}
{"大阪", "大阪府"}
{"名古屋", "愛知県"}
{"札幌", "北海道"}
{"仙台", "宮城県"}
{"福岡", "福岡県"}
上例ではKeyが異なるので問題ありませんが、Keyがかぶった場合は例外が発生します。
※ Keyが被った場合でも例外としたくない場合は、以下記事をご覧ください。
→ [C#] キーが重複する2つのDictionaryを結合する
備考
- Concatを使用するには、using System.Linq;の指定が必要です。
- 結合するコレクションの型は同じである必要があります。
- .Concatの戻り値はIEnumerable型です。なのでList型やDictionary型にしたい場合は上記サンプルのように.ToListや.ToDictionaryで変換する必要があります。