81

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

リスト A = {1,2,3} リスト B = {3,4,5}

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

4

5 に答える 5

154

リストの場合は、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.

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

  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
于 2012-11-22T04:01:40.867 に答える
31

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

var aUb = A.Union(B).ToList();
于 2012-11-22T03:59:14.660 に答える
8

LINQ のユニオンの使用

Enumerable.Union(ListA,ListB);

また

ListA.Union(ListB);
于 2012-11-22T04:00:28.273 に答える
5

私はこれがあなたが本当にする必要があるすべてだと思います:

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

var listMerged = listA.Union(listB);
于 2012-11-22T03:59:46.353 に答える