Hallo,
ich möchte gerne ein Programm um eine Funktion erweitern.
Und zwar um eine Suchfunktion mit der Methode FindIndex() der Klasse List.
Im Formular habe ich drei Radiobuttons hinzugefügt (kleiner, gleich oder größer).
Wenn der Anwender die Option kleiner markiert, soll nach dem Starten der Suche
der erste Wert in der Liste markiert werden, der kleiner ist als das Suchkriterium.
Bei der Option gleich soll der erste Wert markiert werden, der mit dem Suchkriterium
übereinstimmt, und bei der Option größer der erste Wert, der größer ist als das Suchkriterium.
Falls die Suche kein Ergebnis liefert, soll eine entsprechende Meldung ausgegeben werden.
Ich frage mich wie ich das am besten programmieren soll. Eventuell mit einer extra Methode
für die Predicate Delegaten?
Ich wäre sehr dankbar für eure Hilfe.
Hier ist der Quellcode und ein Foto von dem Formular.
MfG
Code zur Lesbarkeit verholfen ~ EaranMaleasi
ich möchte gerne ein Programm um eine Funktion erweitern.
Und zwar um eine Suchfunktion mit der Methode FindIndex() der Klasse List.
Im Formular habe ich drei Radiobuttons hinzugefügt (kleiner, gleich oder größer).
Wenn der Anwender die Option kleiner markiert, soll nach dem Starten der Suche
der erste Wert in der Liste markiert werden, der kleiner ist als das Suchkriterium.
Bei der Option gleich soll der erste Wert markiert werden, der mit dem Suchkriterium
übereinstimmt, und bei der Option größer der erste Wert, der größer ist als das Suchkriterium.
Falls die Suche kein Ergebnis liefert, soll eine entsprechende Meldung ausgegeben werden.
Ich frage mich wie ich das am besten programmieren soll. Eventuell mit einer extra Methode
für die Predicate Delegaten?
Ich wäre sehr dankbar für eure Hilfe.
Hier ist der Quellcode und ein Foto von dem Formular.
VB.NET-Quellcode
- Public Class Form1
- 'das Feld für die Liste
- Private liste As List(Of Integer)
- Private zufall As Random
- 'eine eigene Methode zum Aktualisieren der Liste
- Private Sub listeAktualisieren()
- 'alle Einträge löschen
- listBox1.Items.Clear()
- 'und die Liste neu aufbauen
- For schleife As Integer = 0 To liste.Count - 1
- listBox1.Items.Add(liste(schleife))
- Next
- 'den maximalen Wert für das einzelne Einfügen setzen
- numericUpDownNeuPosition.Maximum = liste.Count + 1
- 'wenn die Liste leer ist, werden die Schaltflächen
- 'zum Löschen, Suchen und Sortieren deaktiviert
- If liste.Count = 0 Then
- buttonSuchen.Enabled = False
- buttonSortieren.Enabled = False
- buttonLoeschen.Enabled = False
- buttonAlleLoeschen.Enabled = False
- 'den maximalen Wert zum Löschen setzen
- numericUpDownLoeschen.Maximum = 1
- Else
- buttonSuchen.Enabled = True
- buttonSortieren.Enabled = True
- buttonLoeschen.Enabled = True
- buttonAlleLoeschen.Enabled = True
- 'den maximalen Wert zum Löschen setzen
- numericUpDownLoeschen.Maximum = liste.Count
- End If
- End Sub
- 'der Konstruktor
- Public Sub New()
- InitializeComponent()
- 'eine neue generische Liste erzeugen
- liste = New List(Of Integer)()
- 'für die Zufallszahlen
- zufall = New Random()
- 'die Liste direkt nach dem Start über die eigene Methode aktualisieren
- listeAktualisieren()
- End Sub
- Private Sub buttonNeuAnzahl_Click(sender As Object, e As EventArgs) Handles buttonNeuAnzahl.Click
- 'die neuen Elemente in die Liste stellen
- For schleife As Integer = 0 To CInt(numericUpDownNeuAnzahl.Value) - 1
- liste.Add(zufall.Next(1000))
- Next
- 'die Liste aktualisieren
- listeAktualisieren()
- End Sub
- Private Sub buttonNeuPosition_Click( sender As Object, e As EventArgs) Handles buttonNeuPosition.Click
- 'einen neuen Eintrag an der gewünschten Position einfügen
- liste.Insert(CInt(numericUpDownNeuPosition.Value) - 1, zufall.Next(1000))
- 'die Liste aktualisieren
- listeAktualisieren()
- End Sub
- Private Sub buttonLoeschen_Click(sender As Object,,e As EventArgs) Handles buttonLoeschen.Click
- 'den Eintrag an der gewünschte Position löschen
- liste.RemoveAt(CInt(numericUpDownLoeschen.Value) - 1)
- 'die Liste aktualisieren
- listeAktualisieren()
- End Sub
- Private Sub buttonSuchen_Click(sender As Object, e As EventArgs) Handles buttonSuchen.Click
- 'steht überhaupt etwas im Suchfeld?
- If textBox1.Text = String.Empty Then
- Return
- End If
- 'für das Suchergebnis
- Dim pos As Integer
- 'die Suche durchführen mit dem Wert aus dem Textfeld
- pos = liste.IndexOf(CInt(textBox1.Text))
- 'wenn etwas gefunden wurde, in der Liste markieren
- If pos > -1 Then
- listBox1.SelectedIndex = pos
- Else
- MessageBox.Show("Der Wert befindet sich nicht in der Liste.")
- End If
- End Sub
- Private Sub buttonAlleLoeschen_Click(sender As Object, e As EventArgs) Handles buttonAlleLoeschen.Click
- 'alle Einträge in der Liste löschen
- liste.Clear()
- 'die Liste aktualisieren
- listeAktualisieren()
- End Sub
- Private Sub buttonSortieren_Click(sender As Object, e As EventArgs) Handles buttonSortieren.Click
- 'die Liste sortieren
- liste.Sort()
- 'die Liste aktualisieren
- listeAktualisieren()
- End Sub
- Private Sub buttonBeenden_Click(sender As Object, e As EventArgs) Handles buttonBeenden.Click
- 'die Anwendung beenden
- Close()
- End Sub
- End Class
MfG
Code zur Lesbarkeit verholfen ~ EaranMaleasi
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „EaranMaleasi“ ()