コレクション

[C#] コレクションを結合する(.Concat)

2021年10月2日

コレクションとコレクションを結合するには、.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で変換する必要があります。

関連記事

-コレクション
-, , , , , ,