Доступ к свойству List коллекции DataColumnCollection таблицы данных

Я пытаюсь получить доступ к List -Property DataColumnCollection в DataTable , и кажется, что его нет. Доступ необходим, поскольку есть набор строк (« Формат »), который мне нужно обработать после извлечения из DataTable.

В документации Microsoft сказано, что он доступен через столбцы таблицы данных (https://docs.microsoft.com/en-us/dotnet/api/system.data.datatable?view=net-6.0), но это нет.

      foreach (object item in dataTable.Columns.List)  // .List is marked as error
{
    Console.WriteLine("TEST: " + item.Format);   // .Format (is string) is marked as error
}

Я знаю, что List-Property по крайней мере доступен, и это все, что мне нужно. Я считаю, что мне здесь не хватает чего-то очень очевидного ... какие-нибудь идеи?

3 ответа

DataColumnCollection является производным от InternalDataCollectionBase, который сам является коллекцией, поэтому сами ваши dataTable.Columns представляют собой список, вам не нужно делать столбцы.List

Вот как вы можете получить доступ к свойствам каждого столбца.

      DataColumnCollection columns = table.Columns;

// Get the ColumnName and DataType for every column.
foreach(DataColumn dataColumn in columns)
{
    Console.WriteLine(dataColumn.ColumnName);
    Console.WriteLine(dataColumn.DataType);
}

Кажется, я нашел ответ:

      foreach (TableColumn item in dataTable.Columns) 
{
    Console.WriteLine("TEST: " + item.Format);  
}

Похоже, что тип TableColumn наследуется от DataColumn , и к свойству Format можно получить прямой доступ.

Попробуйте использовать линк

      var dtColumn = from item in dataTable.Columns.Cast<DataColumn>()
select item.ColumnName;
Другие вопросы по тегам