第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在C#.NET中將兩個(gè)(或多個(gè))列表合并為一個(gè)

在C#.NET中將兩個(gè)(或多個(gè))列表合并為一個(gè)

慕妹3242003 2019-11-12 09:19:10
是否可以使用C#在.NET中將兩個(gè)或多個(gè)列表轉(zhuǎn)換為一個(gè)列表?例如,public static List<Product> GetAllProducts(int categoryId){ .... }...var productCollection1 = GetAllProducts(CategoryId1);var productCollection2 = GetAllProducts(CategoryId2);var productCollection3 = GetAllProducts(CategoryId3);
查看完整描述

3 回答

?
梵蒂岡之花

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊

您可以使用LINQ Concat和ToList方法:


var allProducts = productCollection1.Concat(productCollection2)

                                    .Concat(productCollection3)

                                    .ToList();

請(qǐng)注意,有更有效的方法可以執(zhí)行此操作-上面的操作基本上會(huì)遍歷所有條目,從而創(chuàng)建動(dòng)態(tài)大小的緩沖區(qū)。正如您可以預(yù)測(cè)的開(kāi)始大小一樣,您不需要此動(dòng)態(tài)大小調(diào)整...因此您可以使用:


var allProducts = new List<Product>(productCollection1.Count +

                                    productCollection2.Count +

                                    productCollection3.Count);

allProducts.AddRange(productCollection1);

allProducts.AddRange(productCollection2);

allProducts.AddRange(productCollection3);

(為了提高效率AddRange而特例ICollection<T>。)


除非您確實(shí)需要,否則我不會(huì)采用這種方法。


查看完整回答
反對(duì) 回復(fù) 2019-11-12
?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊

假設(shè)您想要一個(gè)包含指定類別ID的所有產(chǎn)品的列表,則可以將查詢視為投影,然后進(jìn)行展平操作。還有,做一個(gè)LINQ經(jīng)營(yíng)者:SelectMany。


// implicitly List<Product>

var products = new[] { CategoryId1, CategoryId2, CategoryId3 }

                     .SelectMany(id => GetAllProducts(id))

                     .ToList();

在C#4中,可以將SelectMany縮短為: .SelectMany(GetAllProducts)


如果您已經(jīng)有代表每個(gè)ID的產(chǎn)品的列表,那么您需要的是串聯(lián),正如其他人指出的那樣。


查看完整回答
反對(duì) 回復(fù) 2019-11-12
?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以使用LINQ將它們結(jié)合起來(lái):


  list = list1.Concat(list2).Concat(list3).ToList();

不過(guò),較傳統(tǒng)的使用方法List.AddRange()可能會(huì)更有效。


查看完整回答
反對(duì) 回復(fù) 2019-11-12
  • 3 回答
  • 0 關(guān)注
  • 2414 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)