String mit String Array vergleichen

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von picoflop.

    String mit String Array vergleichen

    Hallo,
    Wie kann ich einen String mit einem String Array vergleichen?

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim Moep As String() = {"1", "2", "3", "4", "5"}
    3. If TextBox1.Text.Contains(Moep) Then
    4. MessageBox.Show("Ja")
    5. Else
    6. MessageBox.Show("Nein")
    7. End If
    8. End Sub


    Funktioniert leider nicht ..


    Mfg Kevin.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Gutelaunetyp“ ()

    Nein, er nutzt nicht Char, sondern String

    VB.NET-Quellcode

    1. Dim text As String = "ich bin hier um 5"
    2. Dim Moep As String() = {"1", "2", "3", "4", "5"}
    3. Dim result As Boolean = False
    4. For Each s As String In Moep
    5. If text.IndexOf(s) <> -1 Then
    6. result = True
    7. End If
    8. Next
    9. Console.WriteLine(result.ToString())
    10. Console.ReadLine()

    VB.NET-Quellcode

    1. Dim sArray As String() = {"1", "2", "3", "4", "5"}
    2. Dim sString As String = "4"
    3. Dim index As Byte = 0
    4. For Each sChar As String In sArray
    5. If sChar = sString Then
    6. index = 1
    7. End If
    8. Next
    9. If index = 1 Then
    10. 'dein befehl
    11. Else
    12. 'dein befehl
    13. End if


    mfg Tim ;)
    Hallo,
    jemand sagte mir man kann es mit Linq in einer Zeile lösen , ohne Boolean.

    Achja picoflop, der Typ hat mich mit deiner Zeile ausgelacht :(
    Trotztdem danke =)

    Allerdings sagte er man kann es auch mit einer Schleife lösen

    Kennt sich hier niemand mit Schleifen oder Linq aus ?

    Mfg Kevin.

    Gutelaunetyp schrieb:

    Achja picoflop, der Typ hat mich mit deiner Zeile ausgelacht

    aha ...

    getestet:

    VB.NET-Quellcode

    1. Dim a() As Char = {"1"c, "2"c, "3"c}
    2. Dim s1 As String = "peter"
    3. Dim s2 As String = "pe3er"
    4. Debug.Print((From c As Char In a Where s1.Contains(c) Select 1 Take 1).Count > 0)
    5. Debug.Print((From c As Char In a Where s2.Contains(c) Select 1 Take 1).Count > 0)

    Output:

    Quellcode

    1. true
    2. false

    -> Problem gelöst.

    Zum nachvollziehen:
    From c As Char in a Select c
    -> Schreibt alle Buchstaben aus a() in eine Liste.
    From c As Char in a Where s1.contains(c) Select c
    -> Schreibt alle buchstaben aus a() die in s1 enthalten sind in eine Liste
    From c As Char in a Where s1.contains(c) Select 1 Take 1
    -> Für alle Buchstaben, die in s1 enthalten sind, wird der Wert 1 in eine Liste geschrieben - abgebrochen wird nach dem ersten gefundenen Buchstaben
    (From c As Char in a Where s1.contains(c) Select 1 Take 1).Count > 0
    -> Ermittelt ob ein Zeichen gefunden wurde oder nicht

    Ergo: Es möge der "Typ" doch mal erklären, wie er sich das so vorstellt ...


    Evtl eleganter:
    if s1.distinct.count = s1.except(a).count ...

    Final edit:
    If s1.intersect(a).count=0 ...

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „picoflop“ ()