仅当某个字符串与csv文件中的字符串匹配时,才将csv文件的文本项添加到列表框中
本文关键字:文件 字符串 csv 文本 才将 列表 添加 字符 串匹配 | 更新日期: 2023-09-27 18:29:00
所以我一直在想如何把.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);
如果我理解你试图正确地做什么,也许将文件读取为两个字符串会更容易,然后对它们进行拆分和循环。我不知道你的文件格式,所以这可能会进行不必要的处理(循环处理每个客户的所有事务)。
例如:
cbocustinfo.Items.Clear();
lstcustinfo.Items.Clear();
var customers = File.ReadAllText(@"E:'AS2customers.csv")
.Split(new []{Environment.NewLine}, StringSplitOptions.None);
var transactions = File.ReadAllText(@"E:'AS2data.csv")
.Split(new []{Environment.NewLine}, StringSplitOptions.None);
foreach (var customer in customers)
{
var custInfo = customer.Split(',');
var names = custInfo[0].Split(' ');
cbocustinfo.Items.Add(names[0] + " " + names[1]+ " " + custinfo[1]);
foreach (var transaction in transactions)
{
var transInfo = transaction.Split(',');
if (custInfo[1] == transInfo[0])
{
lstcustinfo.Items.Add(transInfo[3] + " " + transInfo[4]);
}
}
}