我有一個對象objcol1(示例中的城市集合)和另一個對象集合objcol2(示例中的城市集合)的集合。現在我正在查詢objcol1,我想將它添加到objcol2。我可以通過迭代objcol1並逐個添加到objcol2來完成此操作,但是可以直接將objcol1添加到objcol2中,如 objcol2.add(objcol1);將對象集合添加到另一個對象集合而不會迭代
任何人都可以告訴我是否有可能沒有迭代?如果是,請給我解釋一下過程
我有一個對象objcol1(示例中的城市集合)和另一個對象集合objcol2(示例中的城市集合)的集合。現在我正在查詢objcol1,我想將它添加到objcol2。我可以通過迭代objcol1並逐個添加到objcol2來完成此操作,但是可以直接將objcol1添加到objcol2中,如 objcol2.add(objcol1);將對象集合添加到另一個對象集合而不會迭代
任何人都可以告訴我是否有可能沒有迭代?如果是,請給我解釋一下過程
你可以使用Enumerable.Concat
擴展方法:
objcol1 = objcol1.Concat(objcol2)
我蓋的地方,它實際上迭代下敢肯定,但你不會需要編寫代碼來執行它。
注意:只有在您的City
對象相同時才能使用,或者您可以使用Select
來映射對象。
是的,這可能取決於您的使用情況。如果您不關心「集合」類型是什麼,那麼您可以使用linq Concat命令來創建一個新的枚舉,該枚舉在迭代時將包含來自這兩個集合的項目。
var collection1 = new List<int> { 1, 2, 3 };
var collection2 = new [] { 4, 5, 6};
var concatenated = collection1.Concat(collection2);
另一方面,如果您需要將項目實際插入到現有集合中,則需要進行迭代。
其實,你並不需要一個新變種:
collection1.AddRange(collection2);
您也可以使用列表的AddRange
。有關更多信息,請參閱documentation。
var a = new List<string> { "1", "2" };
var b = new List<string> { "3", "4" };
a.AddRange(b);
// a would contain "1", "2", "3" and "4"
的可能的複製[如何枚舉集合追加到在C#中現有列表(http://stackoverflow.com/questions/4067223/how-to-append-enumerable-collection-to-an-existing -list-in-c-sharp) – Fragment