У меня есть входные данные в виде списка объектов:
Name: "Room A",
Time: "15:00",
Topic: "Some Topic"
Name: "Room A",
Time: "18:00",
Topic: "Some Other Topic"
Name: "Room B",
Time: "12:00",
Topic: "Some More Topic"
Name: "Room C",
Time: "13:00",
Topic: "Even More Topic"
и я должен создать из этого разные таблицы. Для начала должна быть таблица, в которой строки основаны на времени, а столбцы — на имени, но в будущем, когда объекты будут расти, я хотел бы иметь возможность вращаться вокруг других свойств.
Я хотел бы закодировать что-то вроде следующего:
var structure = new SomeCSharpStructure(); // <------
for(int i=0;i<24) structure.AddRow(i+":00");
foreach(var name in inputData.Select(x=>x.Name).Distinct()) structure.AddColumn(name);
foreach(var data in inputData) {
structure[data.Name][data.Time] = data.Topic; // or
// structure.AddCell(data.Name,data.Time,data.Topic);
}
...
foreach(var row in structure.getRows()) foreach(var cell in row.getCell())
{
PrintCellContent(cell);
}
хотя я также открыт для других предложений.
Но прямо сейчас я ищу структуру, которая поддерживала бы такое создание, не разбрасывая NullPointerExceptions
или IndexOutOfRangeExceptions
повсюду. Прежде чем я реализую его сам, я хотел бы убедиться, что его нет в наличии.
Кто-нибудь знает структуру, которая удовлетворит мои потребности?