【发布时间】:2018-02-11 20:13:20
【问题描述】:
我已经被这个问题困扰了一段时间了。我能够从一堆(100)文本框中读取信息并将数据保存到 CSV 文件中,但是将这些信息读回表单让我有点困惑,我只是想加载前 11 个字符串开始.我可以将 CSV 加载到列表中,但我似乎无法将该数据从列表移动到我的文本框。我的方法有什么遗漏吗?
public List<string> LoadCsvFile(string filePath)
{
var reader = new StreamReader(File.OpenRead(filePath));
List<string> searchList = new List<string>();
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
searchList.Add(line);
for (int i = 0; i < 11; i++)
{
string date = searchList[i];
string dropdownindex = searchList[i];
LasttextBox.Text = searchList[i];
FirsttextBox.Text = searchList[i];
EmailtextBox.Text = searchList[i];
PhonetextBox.Text = searchList[i];
HometextBox.Text = searchList[i];
InfotextBox.Text = searchList[i];
PrimarytextBox.Text = searchList[i];
EmailtextBox.Text = searchList[i];
SecondaryEmailtextBox.Text = searchList[i];
}
}
return searchList;
}
我得到的错误是:
System.ArgumentOutOfRangeException: '索引超出范围。一定是 非负数且小于集合的大小。参数名称: 索引'
感谢您提供的任何帮助。
【问题讨论】:
-
同一部分你读了 11 遍。然后你重复这个直到你成为文件。
-
那里有相当数量没有意义。至于异常,触手可及的令人敬畏的调试器会向您展示一些问题。当您阅读第一行时,该列表中没有 11 项内容。如果它是 CSV,当你阅读它时它仍然是一行,所以你试图一遍又一遍地在每个 Text 控件中放置同一行
-
使用调试器浏览您的代码。然后你会看到你添加了 1 行并立即循环遍历 11 个列表项。然后为所有文本框分配相同的值。
-
您还需要在 Google 上搜索实际的错误消息作为基础研究:本网站上针对该异常的 3600 c# 相关帖子