将DataColumn值转换为字符串数组时的最佳做法?

Ahm*_*med 12 c# arrays string datatable

将DataColumn值转换为字符串数组时的最佳做法?

[编辑] 某些DataColumn的所有值,以便将所有DataTable行转换为字符串数组?

Ahm*_*eed 23

如果我理解了你的目标,你想要指定一个特定的列并将其所有值作为字符串数组返回.

尝试这些方法:

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();
Run Code Online (Sandbox Code Playgroud)

你可以替换columnIndexcolumnName替代,例如:

string columnName = "OrderId";"
Run Code Online (Sandbox Code Playgroud)

编辑:你已经特别要求一个字符串数组,但是如果你对这些要求很灵活,我宁愿List<string>在第一个例子中避免在for循环之前确定数组长度,只需要添加项目.这也是使用foreach循环的好机会.

然后我会重写代码如下:

List<string> list = new List<string>();
foreach (DataRow row in dt.Rows)
{
    list.Add(row[columnIndex].ToString());
}
Run Code Online (Sandbox Code Playgroud)