Listenelemente (od. Listbox) vergleichen und (doppelte) löschen ? methode?



  • Hallo Forum.. habe mal wieder was primitives für euch..
    ich lese ein File ein manipuliere den String und speichere das ergebnis in nee liste.. jetzt würd ich gerne die doppelten Einträge löschen...
    Leider hat mein Versuch auf die Schnelle, kläglich versagt..

    array<String^>^ inhalt;
    String^ filename;
    String^ outPut = "";
    String^	linie;
    List<String^>^listlines= gcnew List<String^>();
    filename=Directory::GetCurrentDirectory();
    this->lbldir->Text=filename;
    
    inhalt=File::ReadAllLines(filename+"\\Daten\\linien.log",System::Text::Encoding::UTF8); 
    
    for (int i=8; i<inhalt->Length-3; i++)
    	{
    		linie=inhalt[i];
    		linie= linie->Substring(44,5);
    		listlines->Add(linie);
    		//array<String^>^linie1={linie};
    	}
    listlines->Sort();
    
    for (int h=0; h<listlines->Count; ++h)
    	{
              if(listlines[h+1]==listlines[h])					
              listlines->RemoveAt(h);
            }
    

    blick net ganz bei den Methoden durch vermute ich ..
    für eure Hilfe wäre ich dankbar...



  • ok leute kommt davon wenn man zu lange nicht mehr programmiert hat..

    ich beantworte meine frage selber: dabei hab ich auch noch ein wenig verbessert und anstatt nee List eine Listbox genommen.

    for (int i = listBox1->Items->Count - 1; i >= 0; i--)
    {
    
       if (listBox1->Items->IndexOf(listBox1->Items[i]->ToString()) < i)
        listBox1->Items->RemoveAt(i);
    
    }
    

    öhm aber danke fürs zuhören ... bzw.. zusehen..



  • Hmm.. nichts desto trotz würde mich interessieren ob es da nicht doch eine methode gibt.. glaube mich zu erinnern das es früher in der std:: bei list sowas gab hier aber nicht??



  • schieb einfach die zu löschenden Elemente erstmal in eine andere Liste ... im zweiten Durchlauf entfernst Du dann die Elemente aus der zweiten Liste in der ersten Liste


Anmelden zum Antworten