コレクション

[C#] 2つのコレクションの和集合を取得する(.Union)

2021年8月16日

2つのコレクションの和集合を取得するには、.Unionを使用します。

※和集合はどちらか一方もしくは両方に存在した要素を取得します。

サンプル

例1)List<int>型の場合

using System.Collections.Generic;
using System.Linq;

//int型のList
List<int> list1 = new List<int>(){1, 2, 3};
List<int> list2 = new List<int>(){3, 4, 5};

//list1とlist2をUnionする
var result = list1.Union(list2).ToList();

結果

{1, 2, 3, 4, 5}

例2)Dictionaryの場合

using System.Collections.Generic;
using System.Linq;

//Dictionary1
Dictionary<string, string> dic1 = new Dictionary<string, string>();
dic1.Add("01", "札幌");
dic1.Add("02", "東京");
dic1.Add("03", "名古屋");

//Dictionary2
Dictionary<string, string> dic2 = new Dictionary<string, string>();
dic2.Add("03", "名古屋");
dic2.Add("04", "大阪");
dic2.Add("05", "福岡");

//dic1とdic2をUnionする
var result2 = dic1.Union(dic2).ToDictionary(x => x.Key, x => x.Value);

結果

["01", "札幌"]
["02", "東京"]
["03", "名古屋"]
["04", "大阪"]
["05", "福岡"]

備考

  • LINQを使用するには、「using System.Linq;」の宣言が必要です。
  • Unionでは重複する要素は取り除かれて結合します。
  • List型で重複する要素を取り除きたくない場合は、List#AddRangeをご使用ください。
    [C#] 2つのListを結合する(.AddRange)

関連記事

-コレクション
-, ,