将多个列表添加到一个列表
Add mutliple Lists to one list
我有多个 returns 对象列表的函数。如何将它们添加到一个列表中。
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())
...
;
我有多个 returns 对象列表的函数。如何将它们添加到一个列表中。
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())
...
;