使用LINQ,如何将IList >转换为IList
问题描述:
我试图将IList<IList<object>>
转换为IList<object>
,我的意思是有一个唯一的和一个包含第一个元素(对象)的列表。使用LINQ,如何将IList <IList <object>>转换为IList <object>?
public IList<IList<Page>> PMTs
{
get
{
var pmts = Processes.Select(x => x.PageMapTable)
.ToList();
return pmts;
}
}
public IList<Page> BlockMapTable
{
get
{
// Incomplete
var btm = PMTs.Select(x => x.?? ..
}
}
答
假设你想flatMap /扁平化list<list<Page>>
,你可以做到这一点的SelectMany方法,像这样:
public IList<Page> BlockMapTable
{
get
{
var btm = PMTs.SelectMany(x => x).ToList();
}
}
,如果你想了解更多关于它,这里是一个great blog post about selectMany extension method
答
public IList<Page> BlockMapTable
{
get
{
return PMTs.SelectMany(p => p).ToList();
}
}