繁体   English   中英

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

[英]How to save files from two listboxes c#

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

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

它出现了一条错误消息: 错误信息

你能帮我么?

根据我的理解,你的代码从for循环中断开。 你能不能像下面那样改变你的片段。

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

您正在将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这是一个字符串。 然后你试图施放它并且它失败了。

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

失败的原因:
1.you试图返回的对象存储lbxItemPrices.Itemsint变量没有任何明确的铸造首位,而其下面无效:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM