web-dev-qa-db-ja.com

2つのリストの和集合を形成する最も簡単な方法

AとBという2つのリストの要素を互いに比較し、Aに存在しない場合にのみBに存在する要素をAに追加する最も簡単な方法は何ですか?

例として、テイクリストA = {1,2,3}リストB = {3,4,5}

AUB操作の後、リストA = {1,2,3,4,5}が必要です

66
R.S.K

リストの場合は、 AddRange メソッドも使用できます。

var listB = new List<int>{3, 4, 5};  
var listA = new List<int>{1, 2, 3, 4, 5};

listA.AddRange(listB); // listA now has elements of listB also.

新しいリストが必要な場合(および重複を除外する場合)、 nion を使用できます。

  var listB = new List<int>{3, 4, 5};  
  var listA = new List<int>{1, 2, 3, 4, 5};
  var listFinal = listA.Union(listB);

新しいリストが必要な場合(および重複を含める場合)、 Concat を使用できます。

  var listB = new List<int>{3, 4, 5};  
  var listA = new List<int>{1, 2, 3, 4, 5};
  var listFinal = listA.Concat(listB);

共通のアイテムが必要な場合は、 Intersect を使用できます。

var listB = new List<int>{3, 4, 5};  
var listA = new List<int>{1, 2, 3, 4};  
var listFinal = listA.Intersect(listB); //3,4
116
Tilak

最も簡単な方法は、LINQの Union メソッドを使用することです。

var aUb = A.Union(B).ToList();
27
dasblinkenlight

LINQの nion を使用する

Enumerable.Union(ListA,ListB);

または

ListA.Union(ListB);
8
Prabhu Murthy

本当に必要なことはこれだけです。

var listB = new List<int>{3, 4, 5};
var listA = new List<int>{1, 2, 3, 4, 5};

var listMerged = listA.Union(listB);
5
code4life