Извлечь столбец парных из DataTable

Есть ли более простой способ добиться следующего?

var obj = from row in table.AsEnumerable()
          select row["DOUBLEVALUE"];

double[] a = Array.ConvertAll<object, double>(obj.ToArray(), o => (double)o);

Я извлекаю столбец из DataTableи храню столбец в массиве doubles.

Предположим, что tableэто DataTableсодержит столбец с именем «DOUBLEVALUE» типа typeof(Double).

13.12.2008 03:42:48
2 ОТВЕТА
РЕШЕНИЕ
var obj = (from row in table.AsEnumerable()
      select row.Field<double>("DOUBLEVALUE")).ToArray();

.ToArray()Бит не является обязательным, конечно; без ToArray(), вы получите перечисляемую последовательность двойников вместо массива - это зависит от того, нужно ли вам прочитать его один или два раза. Если в данных есть нули, используйте <double?>вместо этого.

(обратите внимание, что для этого нужна ссылка на System.Data.DataSetExtensions.dll и оператор «using System.Data;» - это приводит в действие .Field<T>(...)методы расширения)

2
13.12.2008 09:46:50
double[] a = (from row in table.AsEnumerable()
              select Convert.ToDouble( row["DOUBLEVALUE"] )).ToArray();

Если у вас есть строки, которые могут иметь нулевые значения для этого столбца, добавьте where row["DOUBLEVALUE"] != nullперед выбором.

2
13.12.2008 03:50:22