Я хочу извлечь данные из таблицы Excel в следующей форме с помощью LINQ:
Heading1 . A . B
. C . D
Heading2 . E . F
. G . H
. I . J
Это должно быть спроецировано на POCO, как
class projection
{
string heading;
List<string[]> datapoints;
}
Есть два вопроса, для которых я пытаюсь найти решение:
а) Мне было интересно, как спроецировать несколько последовательных элементов списка на одну структуру объекта.
b) Я хочу выбрать серию элементов в списке, определенном отдельным заголовком в одном поле, за которым следуют пустые элементы.
Для шага а) я смотрел на 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)});
ДП будут занимать весь блок, поэтому я думаю, что это решит мою проблему
Для шага b) должна быть легко возможна предварительная обработка Excel таким образом, как: «заполните пустое поле заголовка заголовком выше». Но мне было интересно, была ли возможность сделать это с помощью LINQ.