簡體   English   中英

將多個列表添加到一個列表

[英]Add mutliple Lists to one list

我有多個函數可以返回對象列表。 如何將它們添加到一個列表中。

var List1 = GetList1().RunFilter1();
var List2 = GetList2();

AddRange()函數變得一團糟。

List1.AddRange(List2.AddRange(List3.AddRange(List4.AddRange(...); 

有沒有一種我可以使用的模式會更容易。 我也有適用於某些列表的擴展方法(過濾器)。 我根據需要互換。 像這樣:

var CombinedList = GetAllLists(GetList1().RunFilter1(),
                               GetList2(),
                               GetList3().RunFilter2(),
                               GetList4() ...);

請記住,獲取的GetList()函數可能會更改。

謝謝你的幫助!

您可以先將所有列表插入另一個列表:

var temp = new List<T>
{
    GetList1().RunFilter1(),
    GetList2(),
    GetList3().RunFilter2(),
    GetList4() 
};

然后使用SelectMany方法展平此列表。

var combined = temp.SelectMany(item=>item).ToList();

您可以使用一些Linq擴展名來幫助您調整格式

var joined = GetList1()
    .Concat(GetList2())
    .Concat(GetList3().RunFilter())
    ...
    ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM