2015-02-10 2 views
0

У меня есть таблица, которую я запрашиваю, а затем пытаюсь использовать Linq для преобразования itemArray в массив строк.Как преобразовать/разбить десятичный столбец в datatable?

Я использую следующий

Dim ObjectMapping As DataTable = ds.Tables(0) 
Dim index As Integer = 0 
Dim query = From ObjectMap In ObjectMapping.AsEnumerable() Select ObjectMap 
Dim test = dr.ItemArray.Cast(Of String)().ToArray() 

таблица имеет 13 столбцов и ItemArray содержит

(0) - "string" 
(1) - double 
(2) - "string" 
(3) - "string" 
(4) - DBNull 
(5) - DBNull 
(6) - DBNull 
(7) - DBNull 
(8) - DBNull 
(9) - DBNull 
(10) - DBNull 
(11) - DBNull 
(12) - DBNull 

Когда я пытаюсь закиньте ItemArray в массив строк, она умирает из-за 2-й столбец, содержащий значение Double, а не String. Есть ли способ, которым я могу преобразовать этот столбец перед тем, как выложить весь массив? Или единственный способ исправить это - изменить схему таблицы?

+0

'ItemArray.OfType () ..' удалит их. – Hogan

ответ

1

Нет, вы не можете бросить, но вы можете конвертировать:

Dim test = dr.ItemArray.Select(Function (o) o.ToString()).ToArray()