Skip to main content
 首页 » 编程设计

c#之扁平化关键集合项目的集合 Linq

2024年01月26日24yjmyzz

我将如何使用 Linq 展开下面的结构?

我正在查看以下结果:

Date      Ids 
1/1/2011  1 
1/1/2011  2 
1/1/2011  3 
1/1/2012  3 
 
etc.. 

我试过 SelectMany,但我做错了。此示例的一些片段:

public class DTO 
{ 
    public DateTime Date { get; set; } 
    public List<int> Ids { get; set; } 
} 

作为

var dataSet = new List<DTO>{ 
    new DTO {Date = new DateTime(2011,1,1), Ids = new List<int>{1,2,3} }, 
    new DTO {Date = new DateTime(2012,1,1), Ids = new List<int>{3,4,5} }, 
    new DTO {Date = new DateTime(2013,1,1), Ids = new List<int>{5,6,7} } 
    }; 

请您参考如下方法:

您正在寻找 SelectMany

var result = dataSet.SelectMany(x => x.Ids, (dto,id) => { 
    return new { date = dto.Date,id}; 
}); 

实例:http://rextester.com/GHY67873