Есть список листов, которые планирую заполнять из БД. Как их можно сохранить в 1 список?
Хотел сделать List< List< T >>, но нельзя - разные структуры.
Хотелось бы получить что-то наподобие:
List[0]< List<systeam>-200строк List<etlcontrolload>-50строк List<sem>-10строк >
List[1]< List<systeam>-220строк List<etlcontrolload>-55строк List<sem>-15строк >
List<systeam> SysteamList = new List<systeam>();
List<etlcontrolload> EtlcontrolloadList = new List<etlcontrolload>();
List<sem> SemList = new List<sem>();
List<ddmpkgstate> DdmpkgstateList = new List<ddmpkgstate>();
List<etlcontroltable> EtlcontroltableList = new List<etlcontroltable>();
List<dqlog> DqlogList = new List<dqlog>();
List<etlcontrolloadarch> EtlcontrolloadarchList = new List<etlcontrolloadarch>();
Если ты разрабатываешь независимый проект без тонны исторического кода, рекомендую сразу взять на вооружение тонкий фреймворк для работы с базой, а не изобретать собственный велосипед. Например, linq2db.
Поддерживает большинство популярных баз данных, есть примеры на все случаи жизни. Минимальный оверхед на выполнение запросов.
И, естественно, никаких List<List<List>> в продукте быть не должно.
Но если очень хочется, тебе ничто не мешает написать обёртку над списком и спрятать под общий интерфейс или просто хранить их в списке List<object>. Но это очень хреновое решение.
В идеале, каждая сущность должна иметь свой собственный класс с полями. В свою очередь должна быть еще сущность(Например, DataBase), которая агрегирует в себе эти сущности и хранит соединение.
Примерно, по такому принципу работают современные ORM. Если вам нужно выполнять сложные запросы, а не просто получать данные, то я бы на вашем месте взял бы какую-нибудь ORM и не изобретал велосипед.
По идее, если вы сделаете List<Object>, то сможете все что угодно хранить там, но вы потеряете безопасность типов...
Поэтому, лучше сделать, как я написал в начале. И безопасность типов будет на месте, и код будет более читаем.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей