Лучшая практика при преобразовании DataColumn оценивает массиву строк?
[Редактирование] Все значения для определенного DataColumn для всех строк DataTable, которые будут преобразованы в массив строки?
Если я понял, что ваша цель, которую вы хотите указать конкретный столбец и вернуть все значения в виде строкового массива.
Попробуйте эти подходы:
int columnIndex = 2; // desired column index
// for loop approach
string[] results = new string[dt.Rows.Count];
for (int index = 0; index < dt.Rows.Count; index++)
{
results[index] = dt.Rows[index][columnIndex].ToString();
}
// LINQ
var result = dt.Rows.Cast<DataRow>()
.Select(row => row[columnIndex].ToString())
.ToArray();
Вы можете заменить COLLINDINDEX
с с
, например,
вместо этого, например:
string columnName = "OrderId";"
Редактировать: Вы попросили строковый массив В частности, но в случае, если вы гибковы относитесь к требованиям, я бы предпочел список list
, чтобы избежать необходимости определять длину массива перед циклом в первом примере и просто добавлять к нему элементы. Также есть хорошая возможность использовать петлю Foreach вместо этого.
Я бы тогда переписал код следующим образом:
List<string> list = new List<string>();
foreach (DataRow row in dt.Rows)
{
list.Add(row[columnIndex].ToString());
}
DataRow.ItemArray Property -
http://msdn.microsoft.com/en-us/library/system.data.datarow.itemarray.aspx
Также, какую версию вы используете? Класс DataTableExtensions -
http://msdn.microsoft.com/en-us/library/system.data.datatableextensions.aspx
А класс DataRowExtensions -
http://msdn.microsoft.com/en-us/library/system.data.datarowextensions.aspx