仅当某个字符串与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);

仅当某个字符串与csv文件中的字符串匹配时,才将csv文件的文本项添加到列表框中

如果我理解你试图正确地做什么,也许将文件读取为两个字符串会更容易,然后对它们进行拆分和循环。我不知道你的文件格式,所以这可能会进行不必要的处理(循环处理每个客户的所有事务)。

例如:

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]);
        }
    }
}