我正在尝试获取DataTable
列的列表。我运行程序时DataTable
包含行和列,因此它不是null
。这是我正在使用的LINQ:
List<string> columnNames = dt.Columns.Cast<DataColumn>().
Select(column => column.ColumnName).ToList();
我收到以下ArgumentOutOfRangeException
:
StartIndex不能小于零。
堆栈跟踪:
at System.String.Remove(Int32 startIndex)
at Prospect.DataHelper.WriteDatatableToCsv(DataTable dt, String path, String fileName, String delimeter) in c:\xxxxxxxxxx\DataHelper.cs:line 400
at Prospect.Contacts.<>c__DisplayClass21.<btnWrite_Click>b__20() in c:\xxxxxxxxxxx\Contacts.cs:line 684
at System.Threading.Tasks.Task.Execute()
答案 0 :(得分:1)
对不起,我对LINQ不太满意,但为什么不试试这个:
Console.WriteLine("My table has: " + dt.Columns.Count + " columns."); //just for testing
List<string> columnNames = new List<string>();
foreach (DataColumn column in dt.Columns)
{
columnNames.Add(column.ColumnName);
}