【发布时间】:2012-07-15 03:09:32
【问题描述】:
如何将数组列表转换为string[]?下面是我正在尝试的代码。我收到一个错误:
源数组中的至少一个元素无法转换为目标数组类型。
ArrayList myArrayList = new ArrayList();
foreach (DataRow dtRow in DtSet.Tables[0].Rows)
{
myArrayList.Add(dtRow);
}
string[] myStringArray = (string[])myArrayList.ToArray(typeof(string));
【问题讨论】:
-
您还在使用 .NET 1.1。或者你为什么不使用输入的
List<T>而不是ArrayList? -
"源数组中的至少一个元素无法转换为目标数组类型。"它真的在告诉你这里的问题......有点;每个“源数组中的元素”都是
DataRow。它告诉您它不能将DataRow转换为string。这是完全正确的;DataRow不是string... -
您正在尝试将 DataRows 转换为字符串。您需要首先检查您拥有的行是否允许这样做。如果是,您可以简单地循环遍历它们并将它们单独添加到字符串数组中。但我怀疑这个演员阵容会成功。
-
@Shaks:DataRows 是 never 字符串,永远不能有意义地转换为字符串。
DateRow.ToString()会调用Object.ToString(),它被实现为this.GetType().ToString()。您可以做的是将每个数据行中的每个字段转换为字符串并连接这些字段。 -
@TimSchmelter - 我想这就是所需要的。 :)