C# 如何将DataRow转换为字符串数组?

C# 如何将DataRow转换为字符串数组?,c#,datarow,C#,Datarow,我在DataGridRow(项数组)中有一些值,我想将所有这些值提取到一个字符串数组中。我怎样才能做到这一点 DataGridRow row = (DataGridRow)Lst.ItemContainerGenerator.ContainerFromIndex(k); DataRowView Drv = (DataRowView)row.Item; DataRow dr = (DataRow)Drv.Row; 一种可能是调用dr.ItemArr

我在
DataGridRow
(项数组)中有一些值,我想将所有这些值提取到一个字符串数组中。我怎样才能做到这一点

DataGridRow row = (DataGridRow)Lst.ItemContainerGenerator.ContainerFromIndex(k);
            DataRowView Drv = (DataRowView)row.Item;
            DataRow dr = (DataRow)Drv.Row;

一种可能是调用
dr.ItemArray这将获得一个
对象[]
。然后,在使用每个对象之前,必须将其强制转换为
string

var rowAsString = string.Join(", ", dr.ItemArray.Select(c => c.ToString()).ToArray());
这将为您提供一个字符串,其中数据行中的每个项都用逗号分隔

var rowAsString = string.Join(", ", dataTable.Rows[0].ItemArray); 
不需要上述任何lambda表达式。

LINQ添加了一些糖:

var stringArray = dr.ItemArray.Cast<string>().ToArray()
var stringArray=dr.ItemArray.Cast().ToArray()

这个对我很有用:

string[] months = string.Join(",", dataTable.Rows[0].ItemArray).Split(',').ToArray();

您的数据行的内容是什么?答案取决于此。唯一可以接受的答案。如果项的和不是字符串类型,其他答案将抛出错误。这是如何工作的?!数据行(dr)没有Select(当然也没有Selct;-):-)Oops!答案中有两处拼写错误。首先,我忘了访问ItemArray,第二个方法名当然应该是Select;-)除非任何值包含逗号。。。