【发布时间】:2014-05-16 17:16:45
【问题描述】:
我遇到的问题是尝试从 FileHelpers 类生成的对象数组中读取字符串数组。
这是我的文件助手类代码:
[DelimitedRecord(",")]
public class test
{
[FieldDelimiter(":")]
public string header;
public string[] phStrArray;
}
然后我尝试从对象中获取字段
string line="pie,cherry,berry:,cake,carrot,vanilla";
FileHelperEngine engine= new FileHelperEngine(className);
var test =engine.ReadString(line);
Object myObject = test[0];
FieldInfo[] fields = className.GetFields();
var objTempValue = fields[1].GetValue(myObject);
tempValue += Convert.ToString(objTempValue);
这对于常规字符串变量非常有用,但是当涉及到字符串数组时,它只会返回“System.String[]”。总的来说,我只是不确定如何将该字符串数组读入字符串或使其成为我可以实际从中获取数据的实际字符串数组。我有一种感觉,我在考虑如何从中获取数据。
提前感谢您的帮助。
编辑:原谅我,我应该写得更清楚一点(这就是我使用 var 得到的)。问题是变量 objTempValue 变成了 Object{string[]} 的类型。所以这就像对象持有一个字符串数组,似乎没有办法得到它。这就是我需要转换为字符串或从中获取数据的变量。
更新:另一种方法是将其转换为这样的字符串数组。
string[] arr = ((IEnumerable<object>)objTempValue).Cast<object>()
.Select(x => x.ToString())
.ToArray();
我不完全确定哪个选项更好,但这个和答案似乎都很好用。
【问题讨论】:
-
将数组转换为字符串非常简单:
String.Join("", myArray);其中""是分隔符。
标签: c# arrays string object filehelpers