【问题标题】:C# DataTable, get value by Row/Column index [duplicate]C# DataTable,通过行/列索引获取值[重复]
【发布时间】:2018-01-07 17:50:17
【问题描述】:

我有一个DataTable,它由一个 csv 文件填充,有 8 列和大约 2000 行。我希望用我当前存储在我的DataTable 中的 csv 值填充一个对象

如何索引特定的DataTable 单元格?换句话说,我希望以与二维数组类似的方式处理数据表,如下所示:

string value = array[i][j];

这是我的代码:

DataTable d = GetDataTableFromCSVFile(file);
for (int i = 0; i < d.Rows.Count; i++)
{
    for (int j = 0; j < d.Columns.Count; j++)
    {
         //string x = d[i][j]; <-- something like this.
    }
} 

【问题讨论】:

  • 感谢@codersl,我已经浏览了这里的一些示例,但我一定错过了那个,我看看

标签: c# indexing data-structures datatable


【解决方案1】:

喜欢这个

string x = d.Rows[i][j].ToString()

【讨论】:

    【解决方案2】:

    您可以使用 for 每个循环来获取数据。

                string x = string.Empty;
                DataTable d = FileHelpers.CommonEngine.CsvToDataTable(@"D:\Sacramentorealestatetransactions.csv", "Sacramentorealestatetransactions", ',', true); // Get FileHelpers package from NuGet
                foreach(DataRow row in d.Rows)
                    foreach (object dc in row.ItemArray)
                        x = dc.ToString();
    

    【讨论】:

      【解决方案3】:

      迭代DataTable 的最佳方式。 Foreach 的工作速度比 for 循环快:

      foreach (DataRow dtRow in dtTable.Rows)
      {
          foreach(DataColumn dc in dtTable.Columns)
          {
            var field1 = dtRow[dc].ToString();
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多