我正在使用C#,想知道是否可以使用Runnable
读取多个变量并加载到数组中?
这是一个示例:
我有一系列使用Streamwriter编写的不同类型
Streamreader.Readline()
它写出如下文本行:
万能真阿拉巴马州
当我回读它时,我唯一的选择是用foreach (Stuff stf in StuffArray)
{
sw.WriteLine(" " + stf.car+ " " + stf.carOwned + " " + stf.carLocation);
}
sw.Close();
阅读整行。
我想像这样将其加载回去
Streamreader
所以我可以将它们放回数组或新数组中,就像提取时一样。
谢谢!
答案 0 :(得分:2)
读取该行,对其进行解析(例如使用string.Split进行解析),然后获取已解析的标记并为变量重新补水。
您可能想使用单词,空格等更复杂的格式(例如,模型名称包含空格或纽约之类的地方的汽车)。选择一个不会出现在字符串中的分隔符。
或者更好的是,选择一种众所周知的序列化格式,例如XML或JSON。
答案 1 :(得分:0)
由于您自己创建字符串表示形式,因此100%确定其格式。在任何其他情况下,您都应该考虑一些更强大的功能,例如序列化为XML,然后将其写入文件。
根据您的情况,我建议创建Stuff
的新集合并添加位于文件每一行的对象,例如:
List<Stuff> stuffItems = new List<Stuff>();
while(!streamReader.EndOfStream)
{
string[] line = streamReader.ReadLine().Split(' ');
stuffItems.Add(new Stuff(line[0], line[1], line[2]));
}
现在您可以根据需要使用此列表,例如覆盖列表中调用ToArray
方法的旧方法,等等。
但是,我再次提醒您这种方法:更改格式(例如更改定界字符)时,会出现异常:)