将DataRow []转换为字符串数组会触发异常“无法将类型为'System.Int32'的对象强制转换为'System.String'。”

时间:2014-07-29 10:20:17

标签: c#

我需要一个DataRow [] drs第一列的字符串数组。我试过下面的一行代码,但它没有用。

DataTable中的数据类型是Int,我需要将它转换为字符串数组。

我错过了一些吗?请建议我。

DataRow[] drs = ds.Tables[1].Select();

抱歉,我需要一个字符串数组的字符串值。

 string[] drsArray = drs
                .AsEnumerable()
         .Select(row => row.Field<string>("role_id")) //Here getting the exception

我已经尝试了@Daniel的逻辑,现在正在工作。现在是否有可能减少一些代码行。

 string[] drsArray = (drs
                        .AsEnumerable()
                 .Select(row => row.Field<int>("role_id"))
                 .Select(i => i.ToString()).ToArray());

2 个答案:

答案 0 :(得分:5)

改为调用ToString

drs[0].ItemArray.Select(i => i.ToString()).ToArray();

答案 1 :(得分:1)

在你的情况下,老式的方式应该足够了。 (至少,在我看来,它更具可读性)

List<string> firstCol = new List<string>()
foreach(DataRow row in drs)
    firstCol.Add(row[0].ToString());

当然,List可以看作是一个没有太多问题的数组

foreach(string s in firstCol)
    Console.WriteLine(s));