2012-11-20 31 views
12

リストの要素を別の要素に追加する最も簡単な方法は何ですか? Xの商品をY項目を含む リストBを含んあるリストから別のリストに要素を追加するC#

リストA:

は、例えば、私は2つのリストを持っています。

AにX + Y項目が含まれるように、Bの要素をAに追加したいとします。私はこれがループを使用して行うことができますが、これのための方法で構築されて知っている?それとも他のテクニックですか?

答えて

25

あなたの質問は、その引数のすべての要素を呼び出すリストオブジェクトにコピーするList.AddRangeメソッドについて説明します。例として

、スニペット

List<int> listA = Enumerable.Range(0, 10).ToList(); 
List<int> listB = Enumerable.Range(11, 10).ToList(); 
Console.WriteLine("Old listA: [{0}]", string.Join(", ", listA)); 
Console.WriteLine("Old listB: [{0}]", string.Join(", ", listB)); 
listA.AddRange(listB); 
Console.WriteLine("New listA: [{0}]", string.Join(", ", listA)); 

プリントlistBのすべての要素をAddRangeコールでlistAに追加されたことを示す

Old listA: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
Old listB: [11, 12, 13, 14, 15, 16, 17, 18, 19, 20] 
New listA: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] 

5

二つのリストに参加するには、あなたがあなたの代わりにlistAを再割り当てするために、後者を使用することができ

listA.AddRange(listB); // listA will contain x+y items 

または

// listC contains x+y items, listA and listB are unchanged. 
var listC = listA.Concat(listB); 

を行うことができます。

listA = listA.Concat(listB).ToList(); 

が、いずれかが存在しませんAddRange以上の特別な利点がある場合は、oのいずれかを変更しても問題ありません最初は厳格なリストです。

関連する問題