Лучшая практика при преобразовании значений DataColumn в массив строк? - PullRequest
11 голосов
/ 16 января 2010

Рекомендации по преобразованию значений DataColumn в массив строк?

[Изменить] Все значения для определенного DataColumn для всех строк DataTable, которые будут преобразованы в массив строк?

Ответы [ 3 ]

22 голосов
/ 16 января 2010

Если я понял вашу цель, вы хотите указать конкретный столбец и вернуть все его значения в виде строкового массива.

Попробуйте эти подходы:

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();

Вместо этого вы можете заменить columnIndex на columnName, например:

string columnName = "OrderId";"

РЕДАКТИРОВАТЬ: вы специально запросили массив строк, но в случае гибкости в отношении требований я бы предпочел List<string>, чтобы избежать необходимости определять длину массива до цикл в первом примере и просто добавьте элементы к нему. Это также хорошая возможность использовать цикл foreach.

Я бы тогда переписал код следующим образом:

List<string> list = new List<string>();
foreach (DataRow row in dt.Rows)
{
    list.Add(row[columnIndex].ToString());
}
2 голосов
/ 16 января 2010

Свойство DataRow.ItemArray -

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

1 голос
/ 10 июля 2014

Я знаю, что этот вопрос старый, но я нашел его в своем поиске в Google, пытаясь сделать что-то подобное.Я хотел создать список из всех значений, содержащихся в определенной строке моей таблицы данных.В приведенном ниже примере кода я добавил источник данных SQL в свой проект в Visual Studio с помощью мастеров графического интерфейса и уронил нужный адаптер таблицы в дизайнер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...