2009-03-13 4 views
0

У меня возникают проблемы с моей программной логикой, которая пересекает коллекцию данных, которая существует в двух отдельных списках ListView. После циклизации и извлечения данных из ListView я затем добавляю все в текстовый файл с разделителями-запятыми (CLOSEULDCONFIG.TXT).Ошибочные данные, полученные из ListView

В первый раз, когда я выполняю эту логику, все работает так, как должно. Если я повторю эту логику, я получаю 2 копии того, что находится в ListView. Каждый раз, когда я просматриваю эту логику, количество копий ранее добавленных элементов 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); 
          } 
         } 

ответ

1

Если я не ошибаюсь, вы открываете файл для добавления вместо перезаписи. Вы проверили файл, чтобы увидеть, дублируются ли данные?

Смежные вопросы