リストの要素を別の要素に追加する最も簡単な方法は何ですか? Xの商品をY項目を含む リストBを含んあるリストから別のリストに要素を追加するC#
リストA:
は、例えば、私は2つのリストを持っています。
AにX + Y項目が含まれるように、Bの要素をAに追加したいとします。私はこれがループを使用して行うことができますが、これのための方法で構築されて知っている?それとも他のテクニックですか?
リストの要素を別の要素に追加する最も簡単な方法は何ですか? Xの商品をY項目を含む リストBを含んあるリストから別のリストに要素を追加するC#
リストA:
は、例えば、私は2つのリストを持っています。
AにX + Y項目が含まれるように、Bの要素をAに追加したいとします。私はこれがループを使用して行うことができますが、これのための方法で構築されて知っている?それとも他のテクニックですか?
あなたの質問は、その引数のすべての要素を呼び出すリストオブジェクトにコピーする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]
。
二つのリストに参加するには、あなたがあなたの代わりに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のいずれかを変更しても問題ありません最初は厳格なリストです。