Werte eines Arrays untereinander vergleichen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von haufe.

    Werte eines Arrays untereinander vergleichen

    Guten Abend!
    Ich hätte da mal wieder ein Problem. Und zwar muss ich alle Werte in einem Array miteinander Vergleichen. Ich kriege es wohl hin den ersten Wert mit dem zweiten, den dritten mit dem fünften und so weiter zu vergleichen. Aber es sollen alle Werte miteinander verglichen werden.
    Angenommen man hat ein Array mit 5 Werten, dann soll verglichen werden:
    1 mit 2
    1 mit 3
    1 mit 4
    1 mit 5
    2 mit 3
    2 mit 4
    2 mit 5
    3 mit 4
    3 mit 5
    4 mit 5

    Wäre an sich nicht so schwer (nur ein bisschen schreibarbeit). Aber ich weiß noch nicht, wie viele Werte das Array haben wird und somit wird die Sache für mich schon kniffliger...

    Hoffe ihr könnt mir dabei helfen.

    Gruß!
    Hallo

    Hab das mal so gemacht


    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim array() As String
    3. Dim array2() As String
    4. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    5. array = {"1", "2", "3", "4", "5"}
    6. array2 = {"1", "2", "3", "4", "8"}
    7. Dim i As Integer = 0
    8. For Each s As String In array
    9. For Each x In array2
    10. If s = x Then
    11. i += 1
    12. End If
    13. Next
    14. Next
    15. MsgBox("Es sind " & i & " werte gleich")
    16. End Sub
    17. End Class


    greetz haufe
    ähh? wasn das :)
    Hi,

    sehe ich das richtig, dass du die Werte eines Arrays untereinander vergleichen willst? Dann würde ich mit mit zwei verschachtelten For-Schleifen arbeiten. Da mir das Ganze ein bisschen zu kompliziert zu erklären ist, gibts ausnahmsweise mal fertigen Code ;)
    Wie viele Elemente ein Array enthält, bekommst du übrigens über die Length-Eigenschaft des Arrays heraus.

    VB.NET-Quellcode

    1. For i = 0 To array1.Length-1
    2. For j = 0 To array1.Length-1
    3. If Not (i = j) 'Kein Objekt mit sich selbst vergleichen
    4. If array1(i) = array1(j)
    5. 'Die zwei Elemente sind gleich
    6. End If
    7. End If
    8. Next
    9. Next


    MfG
    Turtle10

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Turtle10“ ()

    Danke für die schnellen Antworten, aber es ist nicht das, wonach ich suche.

    @haufe
    Du vergleichst jetzt ja zwei Arrays miteinander. Dafür müsste ich dann mein Array in 2 aufsplitten. Und dann können nicht die Werte in einem Array miteinander verglichen werden.
    Und das Array in so viele verschiedene Arrays aufsplitten, wie es Werte hat ist ja auch schwachsinn.

    @Turtle10
    Das kommt meinem Problem schon ziemlich nahe :)
    Jetzt sagt er mir nur, dass wenn ich ein Array von {1, 2, 3, 4, 5, 3} habe, es zwei gleiche Werte gibt. Was ja an sich nicht falsch ist. Aber wenn ich ein Array von {1, 2, 3, 4, 3, 5, 3} habe sind es logischerweise schon 6 gleiche Werte. Aber das werde ich schon noch irgendwie rausfinden.
    Vielen Dank!
    da mach es doch einfach so

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim array() As String
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. array = {"1", "2", "3", "4", "5"}
    5. Dim i As Integer = 0
    6. Dim i2 As Integer = 0
    7. For Each s As String In array
    8. For Each x In array
    9. If s = x Then
    10. i += 1
    11. Else
    12. i2 += 1
    13. End If
    14. Next
    15. Next
    16. MsgBox("Es sind " & i & " werte gleich" & vbCrLf & i2 & " werte sind nicht gleich")
    17. End Sub
    18. End Class
    ähh? wasn das :)