LINQ to Objects问题

Ste*_*ane 3 linq linq-to-objects

我正在编写一个传递List <AssetMovements>的方法,其中AssetMovements看起来像

public class AssetMovements
{
  public string Description { get; set; }
  public List<DateRange> Movements { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我希望能够将这些对象展平为所有Movements的列表而不管Description如何,并且我试图找出我需要执行此操作的LINQ查询.我以为

from l in list select l.Movements
Run Code Online (Sandbox Code Playgroud)

会这样做并返回IEnumerable <DateRange>但它返回IEnumerable <List <DateRange >>并且我不确定如何纠正这个.有什么建议?

Mat*_*ton 13

以前曾经问过这个.您需要SelectMany()方法,该方法可以展平列表列表.所以:

var movements = list.SelectMany(l => l.Movements);
Run Code Online (Sandbox Code Playgroud)