C#で複数のリストの和集合(ユニオン)を求める方法
C#では、LINQのUnionメソッドを使用することで、2つ以上のリストの和集合(ユニオン)を簡単に求めることができます。Unionメソッドは、複数のコレクションを結合しながら、重複する要素を自動的に取り除いた結果を返してくれる便利な機能です。
この記事では、3つのリストを例に、Unionメソッドを使って和集合を求める具体的な手順を解説します。
1. リストの作成
まず、和集合を求める対象となる3つのリストを作成します。
//3つのリスト
var list1 = new List<int>{3, 4, 5};
var list2 = new List<int>{1, 2, 3, 4, 5};
var list3 = new List<int>{5, 6, 7, 8};2. Unionメソッドで和集合を求める
次に、Unionメソッドを使って、list1とlist2の和集合を取得します。さらに、その結果に対してlist3との和集合を求めることで、3つのリストすべての和集合が得られます。
var res1 = list1.Union(list2); var res2 = res1.Union(list3);
3. 完全なサンプルコード
以下が、ここまでの手順をまとめた完全なコード例です。
using System.Collections.Generic;
using System.Linq;
using System;
public class Demo {
public static void Main() {
//3つのリスト
var list1 = new List<int>{3, 4, 5};
var list2 = new List<int>{1, 2, 3, 4, 5};
var list3 = new List<int>{5, 6, 7, 8};
// 和集合を求める
var res1 = list1.Union(list2);
var res2 = res1.Union(list3);
foreach(int i in res2) {
Console.WriteLine(i);
}
}
}実行結果
3 4 5 1 2 6 7 8
コードのポイント
- using System.Linq; が必須:UnionメソッドはLINQ拡張メソッドとして提供されているため、System.Linq名前空間をインポートする必要があります。
- 重複要素は自動的に除外される:上記の例では「3」「4」「5」など複数のリストにまたがって存在する要素も、出力結果にはそれぞれ1回だけ現れます。
- 連続して呼び出せる:UnionメソッドはIEnumerable型を返すため、このようにチェーン的に何度でも呼び出すことができ、3つ以上のリストにも柔軟に対応できます。
-
【Python】2つ以上のリストの和集合(ユニオン)を求めるプログラム
「和集合(ユニオン)」とは、複数のリストに含まれるすべての要素を集め、1つの新しいリストにまとめる操作のことです。本記事では、Pythonを使って2つ以上のリストの和集合を求める方法を、初心者にもわかりやすく解説します。 List1::[1,2,3] List2::[4,5,6] List3::[1,2,3,4,5,6] アルゴリズム ステップ1:2つのリストを入力として受け取る。 ステップ2:「+」演算子を使ってリストを連結(結合)する。 方法1:「+」演算子でリストを連結する Pythonでは「+」演算子を使うだけで、2つのリストを簡単に1つにまとめられます。以下のコードでは、まず
-
【Python】2つのリスト間の欠落している値と追加されている値を見つける方法
集合論において、ある集合Aの「補集合」とは、Aに含まれない要素を指します。また、集合Bに対するAの「相対補集合」は、集合AとBの「差(difference)」とも呼ばれます。本記事では、この原理を応用し、Pythonで2つのリストを比較することで、互いに欠落している要素と余分な要素を効率よく見つける方法を解説します。Pythonのset型には差分を求めるためのdifference()メソッドが標準で用意されており、これを使うと非常にシンプルに実装できます。 アルゴリズム ユーザー入力から2つのリストAとBを作成します。 AとBをそれぞれセット(set型)に変換します。 1つ目のリストに欠落し