Przyznam, że nie do końca rozumiem Twoją ideę :/
Ty korzystasz z klasy generycznej, która wymaga podanie typu w momencie kompilacji. A ja nie znam typu w momencie kompilacji - to user określa które dane będzie pobierał i ile ich będzie a to determinuje typ.
Przykład:
Pobierasz z jakiegoś WebApi dane, które mogą wyglądać tak (inny user może pobierać inne kolumny - innych typów):
"NazwaKolumny1", "NazwaKolumny2", "NK3", "NK4"... //nazwy kolumn
"string", "decimal", "int", "string"... //typy danych
"Jakiś napis", "123.45M", "123", "Kolejny napis", ... //dane - pierwszy wiersz
"Inny napis", "321.11M", "111", "napis", ... //dane - drugi wiersz
... //itd.
W momencie kompilacji ja nie wiem jakiego typu będą to kolumny, dlatego typ generyczny odpada.
Rozważałem zrobienie klasy, która będzie przechowywać tablicę każdego z wykorzystywanych typów tj.:
class Row
{
public string[] string_list;
public decimal[] decimal_list;
public int[] int_list;
... itd.
}
I mając informację jakie kolumny mają być pobrane wrzucać je do takiego obiektu, ale nie wiem czy to dobry pomysł...
Oczywiście miałbym listę takich obiektów - jeden obiekt to jeden wiersz z danymi.