将多个列表添加到一个列表中



我有多个返回对象列表的函数。我怎样才能把它们加到一个列表中呢?

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()函数可能会发生变化。

谢谢你的帮助!

您可以使用一些Linq扩展来帮助您处理格式。

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

你可以先把你所有的列表插入到另一个列表中:

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

然后使用SelectMany方法将该列表压平。

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

相关内容

  • 没有找到相关文章

最新更新