C# - comboBox - Doppelte Items rausschmeissen

Alexander12

Erfahrenes Mitglied
Hi.

Ich habe ne comboBox.
In die Werden Items mit einer While-Schleife eingelesen.

Wie kann Ich denn Items die Doppelt vorkommen "rausschmeissen"?

Vielleicht nen Timer der das überprüft? ;-)


MfG Alexander12
 

Norbert Eder

Erfahrenes Mitglied
Wie wird die ComboBox befüllt? Woher kommen die Daten? Du solltest eher am Ursprung ansetzen.

Und ein Timer ist hier mal definitiv falsch.
 

Norbert Eder

Erfahrenes Mitglied
Am besten ist es hier, sich immer die einzelnen Methoden des verwendeten Controls anzusehen.

Ich weiß ja jetzt nicht wie du die Daten hinzufügst, aber im Grunde kannst du das an der Stelle, wo du die Items addest so machen:
Code:
string data = "vontextfilegelesen";
if (!comboBox1.Items.Contains(data))
  comboBox1.Items.Add(data);
 

Alexander12

Erfahrenes Mitglied
Hi.

Ich adde die Items so:

Code:
StreamWriter datei;
                datei = File.AppendText("Verlauf_textbox.txt");
                datei.WriteLine(url);
                datei.Close();

MfG Alexander12

Ups, Falscher Code. Hier:

Code:
StreamReader Reader = new StreamReader("Verlauf_textbox.txt");
                string Line = String.Empty;
                while ((Line = Reader.ReadLine()) != null)
                {
                    this.textBox1.Items.Add(Line);
                }
 

Christian Kusmanow

Erfahrenes Mitglied
:eek: *argh*
Alexander12 hat gesagt.:
Ich habe ne comboBox.
[...]
Code:
StreamReader Reader = new StreamReader("Verlauf_textbox.txt");
                string Line = String.Empty;
                while ((Line = Reader.ReadLine()) != null)
                {
                    this.textBox1.Items.Add(Line);
                }
Hast Du? Wirklich? :rolleyes:

Code:
using ( TextReader Reader = new StreamReader( "Verlauf_textbox.txt" ){

	string Line;
	while ( Reader.Peek() >= 0 ){
		Line = Reader.Readline();
		if ( !comboBox1.Items.Contains( Line ) )
			comboBox1.Items.Add( Line );
	}
}
Btw. kannst Dir sowas auch spaaren,
wenn Du dafür Sorge trägst, dass doppelte Werte gar nicht erst abgespeichert werden.
 
Zuletzt bearbeitet:

Norbert Eder

Erfahrenes Mitglied
@cosmo:
AUTSCH!
Nimm deine Variante und lies ein 200MB File ein und dann siehst dir den Speicherverbrauch an. Nimm dir die paar Minuten Zeit und du wirst sehen, dass deine Lösung sehr sehr böse ist.
 

Christian Kusmanow

Erfahrenes Mitglied
@Norbert: Wie muss ich's denn umbauen, dass es speicherschonend geht?
Wo bzw. wie muss ich mir den String erstmal speichern?
Ich brauch ihn an der Stelle ja 2mal oder etwa doch nicht? :confused:

//Edit: Wart mal, muss der String ausserhalb der While-Schleife definiert werden?
Das meintest Du doch?