Я работаю над проектом, который сгенерирует файл Excel из представленных данных.Класс Book
имеет несколько классов Sheet
, и каждый класс Sheet
содержит список объектов.Однако на разных листах могут быть разные типы данных.
Т.е. лист 1 может быть List<Dog>
, а лист 2 может быть List<Planet>
.
Идея состоит в том, чтобы получить различные наборы результатов из EF, создать новую книгу, добавить листдля каждого набора результатов, а затем приложение создает файл Excel.
Использование обобщений (с которыми я новичок) вызывает у меня некоторые проблемы.
public class Book
{
public List<Sheet> Sheets { get; set; }
}
public class Sheet
{
public string Name { get; set; }
public List<T> Data { get; set; }
}
Это не работаетпотому что «T не может быть найден», поэтому я меняю Sheets
public class Sheet<T>
{
public string Name { get; set; }
public List<T> Data { get; set; }
}
Но тогда Book должен знать о T, что делает мой список Sheet только одним типом.
Я пыталсямаршрут интерфейса и добавил два свойства к интерфейсу, но это (опять же) заставило меня потребовать предоставить T.
public interface ISheet
{
string Name { get; set; }
List<T> Data { get; set; }
}
Я уверен, что упускаю что-то очевидное, и я делаюэто слишком сложно.
Спасибо
[Edit: в одном примере я использовал 'List<Book>
', но я понял, что это сбивает с толку, поэтому я изменил его на 'List<Planet>
']