ArgumentOutOfRangeException尝试获取DataTable列的列表时

时间:2015-07-24 13:27:29

标签: c# linq datatable

我正在尝试获取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()

1 个答案:

答案 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);
}