我的程序逻辑遇到了一些麻烦,它循环遍历两个独立ListView中存在的数据集合。在循环并从ListView中提取数据之后,我将所有内容添加到逗号分隔的文本文件中( CLOSEULDCONFIG.TXT )。
我第一次执行此逻辑时,一切正常。如果我再次执行此逻辑,我会获得ListView中的2个副本。每次运行此逻辑时,先前添加的ListView项目的副本数量都会增加1.
这是不可取的,因为我想将与ListView中相同数量的元素添加到我的文本文件中。任何人都可以发现导致这种情况的嵌套foreach语句有什么问题吗?
// HAZMAT PACKAGE ERROR LISTVIEW ITEMS
foreach (ListViewItem HazPackErrItems in HazmatPackageErrorListview.Items)
{
bool first = true;
foreach (ListViewItem.ListViewSubItem HazPackErrSub in HazPackErrItems.SubItems)
{
// removes the first element of each comma delimited string
if (first)
first = false;
else
CloseULDSubmitLogDataResponseHazpackerrCloseULDConfig += " " + HazPackErrSub.Text + ",";
}
}
// HAZMAT WEIGHT AND COUNT COLLECTED LISTVIEW ITEMS
foreach (ListViewItem HazWeightAndCountItems in HazmatWeightAndCountListview.Items)
{
bool first = true;
foreach (ListViewItem.ListViewSubItem HazWeightAndCountSub in HazWeightAndCountItems.SubItems)
{
// removes the first element of each comma delimited string
if (first)
first = false;
else
CloseULDSubmitLogDataResponseHazWeightAndCountCloseULDConfig += " " + HazWeightAndCountSub.Text + ",";
}
}
using (System.IO.StreamWriter sw = new System.IO.StreamWriter("CLOSEULDCONFIG.TXT", true))
{
if (!AlreadyExists)
{
sw.WriteLine(PresetNameConfig +
CloseULDSubmitLogDataRequestCloseULDConfig +
CloseULDSubmitLogDataResponseCloseULDConfig +
CloseULDSubmitLogDataResponseHazpackerrCloseULDConfig +
CloseULDSubmitLogDataResponseHazWeightAndCountCloseULDConfig +
CloseULDDateTimeConfig);
}
}
答案 0 :(得分:1)
如果我没弄错的话,你打开要附加的文件,而不是覆盖。您是否检查过文件本身以查看数据是否在那里重复?