我有多个返回对象列表的函数。我怎样才能把它们加到一个列表中呢?
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();