2011-12-27 1 views
1

はのは、私がC#で文字列の2リストの内容をマージする方法

var list1 = new List<string>(); 
var list2 = new List<string>(); 

が、私は両方のリストの内容をマージしたいとしましょう。リストの1つをループしてコンテンツを抽出して2番目のリストに追加するのは、コンテンツをマージする唯一の方法ですか?

foreach(var name in list2) 
{ 
    list1.add(name); 
} 

コンテンツをマージする方法はいくつかありますか?ただ、AddRangeを使用

答えて

8

を支援するための

感謝。 この例ではlist2でアイテムを取ると、別の内容を追加することで、既存のリストを変更しますlist1

list1.AddRange(list2); 
+1

+1シンプルでポイントに...素敵な答え。 –

+0

@Gabe、それはIEnumerableでもうまくいくのでしょうか?リストの代わりに、IEnumerableで作業する必要があるかもしれません。 – Richard77

+1

'AddRange'はパラメータとして(右側)' IEnumerable 'を指定します。 'AddRange'は' List 'に対してのみ定義されていることに注意してください(左辺はリストでなければなりません)。 – bobbymcr

1

System.Collections.Generic.List.AddRangeに追加します。

System.Linq.Enumerable.Concatは、最初のリストから2番目のリストの項目を含むシーケンスを返しますが、元の両方のリストは変更しません。

System.Linq.Enumerable.Unionは、両方のリストからすべてのユニークな項目を含むシーケンスを返し、オリジナルは変更しません。

+0

あまりにもそれを学ぶためにありがとう。 – Richard77

関連する問題