Je rencontre des problèmes avec ma logique de programme qui parcourt une collection de données existant dans deux ListView distincts. Après avoir bouclé et extrait les données de ListView, j'ajoute ensuite tout dans un fichier texte délimité par des virgules (CLOSEULDCONFIG.TXT).Données erronées récupérées à partir de ListView
La première fois que j'exécute cette logique, tout fonctionne comme il se doit. Si j'exécute à nouveau cette logique, j'obtiens 2 copies de ce qui est dans ListView. Chaque fois que je parcours cette logique, le nombre de copies des éléments ListView précédemment ajoutés est augmenté de 1.
Ceci est indésirable car je souhaite ajouter le même nombre d'éléments que celui que j'ai dans ma ListView à mon fichier texte. Quelqu'un peut-il repérer ce qui ne va pas avec mes instructions foreach imbriquées qui en est la cause?
// 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);
}
}