Как автоматически выбрать тип данных?
Хочется конечно немного матом сказать, но соберусь с силами пожалуй. Сколько у вас полей в выдаче? 10? Если бы их было 500, то ваша проблема была бы понятна, однако все решается проще. У вас должен быть класс сущности, объект которой создается на основе полученных данных. 
Соберитесь с силами и напишите prop1 = col1, prop2 = col2 и т.д. Каждое отдельное поле имеет свой тип и если у вас там нет сюрпризов - все нормально сойдется. List<List<string>> это не тип - это хрень. Данных о сущности никаких.
Используйте LINQ и будет вам счастье.