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);
}
它出现了一条错误消息:
你能帮帮我吗?
答案 0 :(得分:1)
根据我的理解,您的代码会从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);
}
答案 1 :(得分:1)
您正在向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
这是一个字符串。然后你试图施放它并且它失败了。
此外,您可能需要重新考虑代码的结构。嵌套循环几乎不是一件好事,而且效率非常低。
答案 2 :(得分:0)
失败原因: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());
}
}
}