Zusammenführen von doppelten einträgen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von SirionAUT.

    Zusammenführen von doppelten einträgen

    Hey liebe Forengemeinde,

    hab folgendes Problem, ich habe eine List mit Namen und einer Zahl (Umsatz mit der Person), und jetzt will ich den Gesamtumsatz/person errechnen, nur leider schaff ich das irgendwie nicht hab jetzt schon stundenlang mit Arrays und Schleifen gearbeitet ohne ein sinnvolles Ergebnis zu bekommen ~.~

    Ausgangsliste:

    Huber - 500
    Huber - 627
    Meier - 100
    Wimmer - 65
    Meier - 50
    Huber - 700

    So sollte es dann aussehen:
    Huber - 1827
    Meier - 150
    Wimmer - 65

    Danke im Vorraus für jede Hilfe und sei sie noch so klein!
    Mach es doch so:

    Eine schleife die jeden eintrag einzeln durchgeht,
    in der schleife noch eine schleife die prüft ob der eintrag noch einmal vorhanden ist, wenn ja soll er das dann verarbeiten.

    -edit: eventuell schon beim hinzufügen der einträge schon darauf achten ob es den eintrag schon mal gibt ;)

    Grüße
    Hier mal ein kleines Beispiel.
    Geht zwar schöner, aber naja
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Doppelten Eintrag in der ComboBox verhindern
    2. Public Class Form1
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. With ComboBox1
    5. .AutoCompleteMode = AutoCompleteMode.SuggestAppend
    6. .AutoCompleteSource = AutoCompleteSource.ListItems
    7. End With
    8. End Sub
    9. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    10. Dim JaNein As Integer = 0
    11. Dim Vergleich As String = Trim(ComboBox1.Text)
    12. If String.IsNullOrEmpty(Vergleich) Then
    13. Exit Sub
    14. Else
    15. For i = 0 To ComboBox1.Items.Count - 1
    16. Dim Auslesen As String = ComboBox1.Items.Item(i).ToString
    17. If Auslesen = Vergleich Then ' prüfen ob Eintrag Doppelt
    18. MsgBox("Er Eintrag ist schon Vorhanden")
    19. JaNein = JaNein + 1
    20. End If
    21. Next i
    22. End If
    23. If JaNein = 0 Then ' Nicht Doppelt dann eintragen
    24. ComboBox1.Items.Add(Vergleich)
    25. MsgBox("Der Eintrag wurde erstellt")
    26. Else : End If
    27. End Sub
    28. End Class
    danke für die Hilfe, habs jetzt hinbekommen!

    Für Leute dies interessiert:

    VB.NET-Quellcode

    1. For i = 1 To (name.Count - 1) / 3
    2. For i2 = 0 To lsv_received.Items.Count - 1
    3. If lsv_received.Items.Item(i2).Text = name(i * 3).InnerText Then
    4. compare = True
    5. comp_pos = i2
    6. End If
    7. Next
    8. If compare = True Then
    9. Dim int1 As Integer = name(i * 3 + 1).InnerText.Replace(".00", String.Empty)
    10. Dim int2 As Integer = lsv_received.Items.Item(comp_pos).SubItems(1).Text.Replace(".00", String.Empty)
    11. Dim lvi_rec As New ListViewItem
    12. lvi_rec.Text = name(i * 3).InnerText
    13. lvi_rec.SubItems.Add(int1 + int2)
    14. ' lvi_rec.SubItems.Add(GetDateFromTimestamp(name(i * 3 + 2).InnerText))
    15. lsv_received.Items.RemoveAt(comp_pos)
    16. lsv_received.Items.Add(lvi_rec)
    17. compare = False
    18. Else
    19. Dim lvi_rec As New ListViewItem
    20. lvi_rec.Text = name(i * 3).InnerText
    21. lvi_rec.SubItems.Add(name(i * 3 + 1).InnerText.Replace(".00", String.Empty))
    22. lvi_rec.SubItems.Add(GetDateFromTimestamp(name(i * 3 + 2).InnerText))
    23. lsv_received.Items.Add(lvi_rec)
    24. End If
    25. Next