MIt For each-Schleife nur die ungeraden Zeilen einer List of String lesen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    MIt For each-Schleife nur die ungeraden Zeilen einer List of String lesen

    Ja also die for each schleife soll nur jede zweite Zeile der list of string lesen, mit anderen worten nur die geraden zeilen der list lesen.

    Danach will ich das so einrichten dass es nur die ungeragen Zeilen liest. danke lg

    VB.NET-Quellcode

    1. dim _list as list of string
    2. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
    3. 'hier liest er alle zeilen wie kann ich nur die gerade numerierten Zeilen der list of string lesen?
    4. For Each item As String In _list
    5. MsgBox(item)
    6. Next
    7. End Sub

    Da brauchst du doch nur nen Schalter einzubauen.

    VB.NET-Quellcode

    1. dim _list as list of string
    2. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
    3. 'hier liest er alle zeilen wie kann ich nur die gerade numerierten Zeilen der list of string lesen?
    4. Dim Schalter as boolean = false
    5. For Each item As String In _list
    6. if Schalter then
    7. MsgBox(item)
    8. end if
    9. Schalter = not Schalter
    10. Next
    11. End Sub
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Wenn es vielleicht nicht gerade For-Each sein sollte, dann mit einer For-Next Schleife?

    VB.NET-Quellcode

    1. dim _list as list of string
    2. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
    3. 'hier liest er alle zeilen wie kann ich nur die gerade numerierten Zeilen der list of string lesen?
    4. For i1=0 to _list.count-1 step 2 '_list.count is 1-basierend, deswegen -1
    5. MsgBox(_list(i1))
    6. Next
    7. End Sub


    Ich denke, dass bei Operationen, die direkt auf den index abzielen hier For-Each nicht passt.

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

    @SKeks klar das geht auch. While zu verwenden wäre auch möglich. Ich hab mich aber auf die gestellte Anforderung konzentriert. Wer weiß warum der TE das so haben möchte
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    mox schrieb:

    was das denn?

    eine List(of String) ... die einfach getippt wurde. Da auch dim und nicht Dim da steht ist davon auszugehen das der Code nicht im Studio vorgeschrieben wurde.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Da if auf "True/False" prüft kann man sich bei einem Boolean das = True sparen.
    Ein Boolean kann nur True oder False sein. Da prüfst du ob true gleich true ist.

    Not ist eine Negation. Schalte = Not Schalter
    Also:
    Schalter = True ---> True
    Schalter = Not True ----> False

    Schalte = Not Schalter -----> Wenn Schalter True dann wird er False, Wenn Schalter False wird er True

    Die Beiden CodeSchnipsel machen exakt das gleiche

    VB.NET-Quellcode

    1. Dim _list As List(Of String)
    2. Private Sub btnSenden_Click(sender As Object, e As EventArgs) Handles btnSenden.Click
    3. Dim Schalter As Boolean = False
    4. For Each item As String In _list
    5. If Schalter Then
    6. MessageBox.Show(item)
    7. End If
    8. Schalter = Not Schalter
    9. Next
    10. End Sub


    VB.NET-Quellcode

    1. Dim _list As List(Of String)
    2. Private Sub btnSenden_Click(sender As Object, e As EventArgs) Handles btnSenden.Click
    3. Dim Schalter As Boolean = False
    4. For Each item As String In _list
    5. If Schalter = True Then
    6. MessageBox.Show(item)
    7. End If
    8. If Schalter = True Then
    9. Schalter = False
    10. Else
    11. Schalter = True
    12. End If
    13. Next
    14. End Sub
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Vereinfachung:

    VB.NET-Quellcode

    1. Dim _list As List(Of String)
    2. Private Sub btnSenden_Click(sender As Object, e As EventArgs) Handles btnSenden.Click
    3. Dim Schalter As Boolean = False
    4. For Each item As String In _list
    5. If Schalter Then MessageBox.Show(item)
    6. Schalter = Not Schalter
    7. Next
    8. End Sub


    Gugge Boolean, Vergleiche und bedingte Verzweigungen

    ErfinderDesRades schrieb:

    Vereinfachung:


    Ob das jetzt wirkleich eine Vereinfachung ist darüber kann man sich streiten :)

    If true then do
    oder
    If true then
    do
    end if
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    Visual_Prog schrieb:

    wie kann ich eine bestimmte Zeile einer List (of String) lesen?

    VB.NET-Quellcode

    1. strValue = DeineList(Of String).Item(x)
    siehe hier
    Schaue dir die Klasse List(Of T)-Klasse einmal genauer an, da sind noch viele Member, die das Arbeiten mit einer List erleichtern...
    @Visual_Prog @Visual_Prog Das geht auch einfacher:

    VB.NET-Quellcode

    1. Dim ll = New List(Of String) From {"a", "b", "c", "d"}
    2. MessageBox.Show(ll(2))
    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!

    ErfinderDesRades schrieb:

    Und was sagst du zu Schalter = not Schalter?


    Du hast schon gelesen das ich das kurze auch so geschrieben habe und das lange nur zur Erklärung weil der TE den Not begriff nicht kannte. Und nicht wusste das man ein boolean ohne =true in einen If verwenden kann.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Wenn du nicht auf ein For Each angewiesen bist, dann würde auch so was gehen. Vorteilhaft ist auch, dass du so irgendwo in der List(of T) anfangen kannst.

    Mit oddkannst du definieren ob gerade oder ungerade

    Typisch für die Erkennnung von geraden oder ungeraden sind folgende zwei Möglichkeiten
    If (i And 1) = odd Then oder If i Mod 2 = odd Then

    VB.NET-Quellcode

    1. 'Beispiel: Hier wird der Index der List(of T) auf gerade ungerade geprüft
    2. Option Strict On
    3. Option Explicit On
    4. Module Module1
    5. Sub Main()
    6. Dim _lst As New List(Of String) From {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n"}
    7. Dim ilen As Integer = _lst.Count
    8. Dim odd As Integer = 1 'für all ungerade
    9. For i As Integer = 0 To ilen - 1
    10. If (i And 1) = odd Then
    11. Console.Write(_lst(i) & " ")
    12. End If
    13. Next
    14. Console.WriteLine()
    15. odd = 0 'für all gerade
    16. For i As Integer = 0 To ilen - 1
    17. If i Mod 2 = odd Then
    18. Console.Write(_lst(i) & " ")
    19. End If
    20. Next
    21. Console.ReadLine()
    22. End Sub
    23. End Module



    Freundliche Grüsse

    exc-jdbi

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „exc-jdbi“ ()