如何从两个列表框保存文件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#的主要内容,如果未能解决你的问题,请参考以下文章