如何从两个列表框保存文件c#

Posted

技术标签:

【中文标题】如何从两个列表框保存文件c#【英文标题】:How to save files from two listboxes c# 【发布时间】:2013-11-11 06:10:54 【问题描述】:

我正在做一个项目。在项目中,我需要将值添加到列表框中。当我按下添加按钮时:

 lbxOverhead.Items.Add(tbxAddItem.Text);
 lbxItemPrices.Items.Add(tbxAddPrice.Text);

然后我使用以下代码将修改后的列表框值保存到 txt 文件中:

using (StreamWriter outputFile = new StreamWriter("List.txt"))
        
            foreach (string item in lbxOverhead.Items)
            foreach (int item2 in lbxItemPrices.Items)
            
                outputFile.WriteLine(item);
                outputFile.WriteLine(item2);
            

它会出现一条错误消息:

你能帮帮我吗?

【问题讨论】:

您确定要嵌套foreach 吗? 如果您在每个框中有 2 个项目,那么在您的文本文件中您将有 8 行,我不确定这是您正在寻找的结果。是吗? 【参考方案1】:

据我了解,您的代码从for 循环中断。您能否像下面这样更改您的 sn-p。

using (StreamWriter outputFile = new StreamWriter("List.txt"))

   foreach (var item in lbxOverhead.Items)
   foreach (var item2 in lbxItemPrices.Items)
   
      outputFile.WriteLine(item);
      outputFile.WriteLine(item2);
   

【讨论】:

【参考方案2】:

您将 string 转换为 int 并且失败了

using (StreamWriter outputFile = new StreamWriter("List.txt"))

 foreach (string item in lbxOverhead.Items)
 foreach (string item2 in lbxItemPrices.Items)
 
   outputFile.WriteLine(item);
   outputFile.WriteLine(item2);
 

当您将它添加到项目列表时,您添加的是一个字符串.Text。然后你试图投射它并且它失败了。

此外,您可能需要重新考虑代码的结构。嵌套循环几乎不是一件好事,而且效率非常低。

【讨论】:

【参考方案3】:

失败原因:1.您试图将返回的lbxItemPrices.Items 对象存储在int 变量中而不进行任何显式转换 - 这是无效的,如下所示:

foreach (int item2 in lbxItemPrices.Items)

2. 在这里使用 2 个 foreach 循环不是一个好习惯,我认为它会产生其他问题。

这里我只在ItemPrice 计数和Overhead 计数相同时添加项目代码如下:

    using (StreamWriter outputFile = new StreamWriter("List.txt"))
    
        if(lbxOverhead.Items.Count == lbxItemPrices.Items.Count)
        
          for(int i=0;i<lbxOverhead.Items.Count;i++)       
                   
            outputFile.WriteLine(lbxOverhead.Items[i].ToString());
            outputFile.WriteLine(lbxItemPrices.Items[i].ToString());
          
        
    

【讨论】:

以上是关于如何从两个列表框保存文件c#的主要内容,如果未能解决你的问题,请参考以下文章

如何直接在网页中打开文件 不出现下载保存提示框!

隐藏或保护 .txt 保存数据 c#

在 C# 中,如何将文本框、复选框等的值保存在一个文件中?

如何将目录列表保存到xml文件C#

如何使用c#将列表项及其索引保存在文本文件中

怎么读取列表控件中的数据