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

17
我有一些值在一个DataGridRow中(item数组),我想将所有这些值提取到一个字符串数组中。我该如何实现?
DataGridRow row = (DataGridRow)Lst.ItemContainerGenerator.ContainerFromIndex(k);
            DataRowView Drv = (DataRowView)row.Item;
            DataRow dr = (DataRow)Drv.Row;

你的数据行内容是什么?答案取决于它。 - Rune Grimstad
5个回答

32
var rowAsString = string.Join(", ", dataTable.Rows[0].ItemArray); 

不需要像上述那样使用任何lambda表达式。


17

一种可能的方法是调用 dr.ItemArray; 这将获得一个 object[]。然后在使用之前,您必须将每个对象转换为string


10

LINQ增加了一些便利性语法:

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

7
var rowAsString = string.Join(", ", dr.ItemArray.Select(c => c.ToString()).ToArray());

这将为您提供一个字符串,其中包含数据行中的每个项目,由逗号分隔。

2
只有字符串类型的项才能被接受。如果任何项不是字符串类型,将会出现错误。 - nelek
这是怎么回事?!DataRow(dr)没有Select(绝对没有Selct;-)) - Xan-Kun Clark-Davis
抱歉!答案中有两个错别字。首先,我忘记访问ItemArray,其次方法名称当然应该是Select;-) - Rune Grimstad

1
这个对我有用:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接