Witam,
próbuję poradzić sobie z następującym problemem i proszę Was o pomoc.
Mam dane:
List<DataTable> listOfTables = new List<DataTable>()
Każdy element powyższej listy to tabela z dokładnie dwoma kolumnami: Identyfikatorem oraz wartością przypisaną do tego identyfikatora.
Jeśli lista zawiera znaną liczbę elementów (np. 2) to sprawa jest prosta:
var results = from table1 in listOfTables[0].AsEnumerable()
join table2 in listOfTables[1].AsEnumerable() on (string)table1[INDEX_COLUMN_NAME] equals (string)table2[INDEX_COLUMN_NAME]
select new
{
ID = (string)table1[INDEX_COLUMN_NAME],
Col1 = (string)table1[listOfTables[0].Columns[1].ColumnName],
Col2 = (string)table2[listOfTables[1].Columns[1].ColumnName]
};
W wyniku powyższego otrzymuję results jako zbiór wierszy o strukturze: ID | Col1 | Col2.
Mogę je wypisać na przykład w ten sposób:
foreach (var item in results)
{
Console.WriteLine(String.Format("ID = {0}, ColX = {1}, ColY = {2}", item.ID, item.Col1, item.Col2));
}
I teraz mój problem, z którym się mierzę:
Chciałbym zrobić uniwersalny kod, który wypisze mi na ekran tyle kolumn, ile elementów ma lista zadeklarowana na początku posta.
Wiadome jest, że każdy element listy to tabela z dokładnie dwoma kolumnami, z których jedna jest zawsze identyfikatorem, po którym następuje łączenie.
Proszę o pomoc.