代码之家  ›  专栏  ›  技术社区  ›  jason

从数据表中提取double列

  •  2
  • jason  · 技术社区  · 16 年前

    有没有更简单的方法来实现以下目标?

    var obj = from row in table.AsEnumerable()
              select row["DOUBLEVALUE"];
    
    double[] a = Array.ConvertAll<object, double>(obj.ToArray(), o => (double)o);
    

    DataTable 并将该列存储在 double s

    假定 table 是一个 包含类型为“DOUBLEVALUE”的列 typeof(Double)

    2 回复  |  直到 16 年前
        1
  •  2
  •   Marc Gravell    16 年前
    var obj = (from row in table.AsEnumerable()
          select row.Field<double>("DOUBLEVALUE")).ToArray();
    

    这个 .ToArray() 当然,bit是可选的;没有 ToArray() ,您将得到一个可枚举的双精度序列,而不是一个数组-这取决于您需要读取一次还是两次。如果数据中有空值,请使用 <double?>

    (请注意,这需要引用System.Data.DataSetExtensions.dll和“using System.Data;”语句—这将带来 .Field<T>(...) 扩展方法(发挥作用)

        2
  •  2
  •   tvanfosson    16 年前
    double[] a = (from row in table.AsEnumerable()
                  select Convert.ToDouble( row["DOUBLEVALUE"] )).ToArray();
    

    如果您的行中该列的值可能为空,请添加 where row["DOUBLEVALUE"] != null 在选择之前。