【发布时间】:2014-11-03 04:10:14
【问题描述】:
所以我一直在试图弄清楚如何带入一整行 .csv 文件,但只有第一个字符串与另一个字符串匹配。 这就是我到目前为止所得到的,所有我回到我的列表框中的信息都是来自同一随机行的信息。 如果你们能帮助我的逻辑,那将很有帮助,谢谢
cbocustinfo.Items.Clear();
lstcustinfo.Items.Clear();
StreamReader infile, transdata;
infile = File.OpenText(@"E:\AS2customers.csv");
transdata= File.OpenText(@"E:\AS2data.csv");
string[] custinfo, names;
string[] custtrans;
do
{
custtrans = transdata.ReadLine().Split(',');
if (custinfo[1] == custtrans[0])
{
lstcustinfo.Items.Add(custtrans[3] + " " + custtrans[4]);
}
}
while (transdata.EndOfStream != True);
infile.Close();
transdata.Close();
这里是我初始化 custinfo 的地方
do
{
custinfo = infile.ReadLine().Split(',');
names = custinfo[0].Split(' ');
cbocustinfo.Items.Add(names[0] +" "+ names[1]+ " " + custinfo[1]);
}
while (infile.EndOfStream != true);
【问题讨论】:
-
在我看来,这会产生一个运行时错误:
if (custinfo[1],因为您从未初始化 custinfo 数组。 -
另外,你的 streamReader 应该在 using 语句中,因为它们实现了 IDisposable()
-
何时将数据填充到
custinfo数组中?目前它似乎从未被初始化。 -
我把 using 当作 using Systems.IO;在我开始编程之前,我早些时候初始化了 custinfo,我只是不想包含它,因为太长可能会更加混乱
-
好吧,在您刚刚添加的
do循环中,您将一遍又一遍地覆盖custinfo和names,直到您到达infile的末尾。
标签: c# arrays io listbox streamreader