2 Arrays vergleichen und Position des Unterschiedes ausgeben

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Zahlensuppe.

    2 Arrays vergleichen und Position des Unterschiedes ausgeben

    Guten Tag,

    meine Frage lautet, ob es möglich ist 2 Arrays so miteinander zu vergleichen, dass ich die Position des Wertes bekomme, der in Array 1 anders ist als in Array 2.

    Hier mal ein Beispiel wie Ich es meine:

    Ich habe 2 Zeilen aus 2 verschiedenen Textdateien ausgelesen und diese anschließend in 2 Arrays gespeichert.
    Die Strings sehen so aus :
    Beispiel;2;44;2;345;435;6;4;0;0;-
    Beispiel;2;44;2;345;435;6;4;2;0;-

    VB.NET-Quellcode

    1. Dim numbers As String = File.ReadAllText("H:\Beispiel1.txt")
    2. Dim numbers2 As String = File.ReadAllText("H:\Beispiel2.txt")
    3. Dim array1() As String = numbers.Split(";")
    4. Dim array2() As String = numbers2.Split(";")


    Danach hab Ich es schon mit IndexOf versucht, da ich vorher schonmal den einzelnen Wert als Variable hatte, jedoch kommt hier das Problem:
    Da nun die 2 der Unterschied bei den beiden Strings ist sucht es die Position von 2, da es jedoch mehrere 2er gibt spuckts mir hier den IndexOutOfRange Fehler aus.
    Deswegen benötige Ich direkt die Position um mit dieser nicht nur den geänderten Wert auslesen zu können, sondern auch in einem dritten String den Wert an der gleichen Position wie die Änderung zu bekommen.

    Falls Ich es ein bisschen kompliziert gefragt habe tut mir Leid :D

    Ich bedanke mich schonmal :thumbsup:
    @Zahlensuppe So was:

    VB.NET-Quellcode

    1. For i = 0 To Math.Min(array1.Length, array2.Length) - 1
    2. If array1(i) <> array2(i) Then
    3. Label1.Text = i.ToString
    4. Exit For
    5. End If
    6. Next
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!