0

我正在尝试访问DataTable的DataColumnCollectionList -Property,似乎没有。访问是必要的,因为在从 DataTable 中提取后,我需要处理一组字符串(“格式”)。

微软的文档说,它可以通过数据表的列(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 至少是可以得到的,这就是我所需要的。我相信我在这里遗漏了一些非常明显的东西......任何想法?

4

3 回答 3

1

DataColumnCollection 派生自 InternalDataCollectionBase 本身就是一个集合,所以你的 dataTable.Columns 本身就是一个列表,你不需要做 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);
}
于 2021-12-21T11:00:14.810 回答
0

看起来我找到了答案:

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

似乎TableColumn的类型继承自DataColumn并且属性Format可以直接访问。

于 2021-12-22T12:33:01.783 回答
0

尝试使用 linq

var dtColumn = from item in dataTable.Columns.Cast<DataColumn>()
select item.ColumnName;
于 2021-12-21T11:23:03.947 回答