如何使用LINQ将多个连续的源项目投影到一个POCO上

时间:2019-03-24 07:52:23

标签: c# linq etl data-munging

我想使用LINQ以以下形式从Excel工作表中提取数据:

Heading1 .  A .  B
         .  C .  D
Heading2 .  E .  F
         .  G .  H
         .  I .  J

这应该投影在POCO之类的

class projection
{
    string heading;
    List<string[]> datapoints;
}

我正在尝试找到两个问题的解决方案:

a)我想知道如何将列表的多个连续项投影到一个对象结构上。

b)我想从一个字段中的不同“标题”定义的列表中选择一系列项目,然后是空项目。

对于步骤a)我正在查看GroupBy:

[编辑:]

var table = new [] {
    new [] { "EP1","A","B"},
    new [] { "EP1","C","D"},
    new [] { "EP2","E","F"},
    new [] { "EP2","G","H"},

};


var EPs = table.GroupBy(x=>x[0])
    .Select(x => new {EP = x.Key, DPs = x.Select(y=>y)});

DP将占据整个区块,所以我认为这解决了我的问题

对于步骤b),应该很容易以如下方式对Excel进行预处理:“用上面的标题填充空白标题字段”。但是我想知道是否有可能使用LINQ做到这一点。

0 个答案:

没有答案