List of Integer abschnittsweise ordnen

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

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    List of Integer abschnittsweise ordnen

    Hallo ich habe eine list of integer ("kartenallerspieler02"), die viele Zahlen enthält und gelegentlich mit einer Kennzahl "55555" beschrieben wird, um die Abschnitte zu unterscheinden.

    Das ganze wird so befüllt:
    (welchekarten ist eine andere List of integer)

    VB.NET-Quellcode

    1. For Each element As spieler In spieleranzahl
    2. kartenallerspieler02.AddRange(element.welchekarten)
    3. kartenallerspieler02.Add(55555)
    4. Next


    Meine Frage: Wie kann ich hier die Liste abschnittsweise, jeweils bis zur nächsten "55555" ordnen?
    Mit einer
    kartenallerspieler02.sort()
    würde sich ja die GESAMTE Liste ordnen, aber sie soll ja abschnittsweise unterscheiden!

    Vielen Dank
    Ich dächt, dass wir das schon mal in nem anderen Thread besprochen hatten. Wenn Du glaubst, sowas zu brauchen, liegt ein Designfehler vor.
    Du willst die Kartenindizes aller Spieler auflisten. Um was zu machen? Eine Anzeige in der Konsole? Dann mach aus kartenallerspieler02 eine List(Of String). Dann kannst Du zwischen den Spieler Leerzeilen einfügen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Oh Man du hast Recht ich musste einfach die Befüllungsliste "welchekarten" schon vorher ordnen.

    @VaporiZed ja das Projekt hält noch an....konnte in nur in der letzten Zeit nicht daran arbeiten ;)

    ja genau...ich habe das jetzt mit stringbuilder gelöst:

    VB.NET-Quellcode

    1. Dim kartenallerspielerarray() As Integer = kartenallerspieler02.ToArray 'verwandle die list of integer in einem integer array
    2. Dim kartenallerspielerarray02() As String = kartenallerspielerarray.Select(Function(x) x.ToString()).ToArray() ' verwandle das integer-array in einem string-array
    3. Dim builder As StringBuilder = New StringBuilder()
    4. For Each Val As String In kartenallerspielerarray02
    5. If Val = "55555" Then
    6. builder.Replace("55555", "/")
    7. End If
    8. builder.Append(Val).Append(" ")
    9. Next
    10. Dim kartenallerspielerstring = builder.ToString
    11. Dim trennungsarray() = kartenallerspielerstring.Split(CChar("/"))
    12. Console.WriteLine("Hier die getrennten daten:")
    13. For i = 1 To trennungsarray.Length - 1
    14. Console.Write("Spieler " & i & ": ")
    15. Console.WriteLine(trennungsarray(i))
    16. Next

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

    Kurzer Einwurf für den Tagesabschluss: kartenallerspielerstring.Split(CChar("/")) -> kartenallerspielerstring.Split("/"c)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Visual_Prog Gib jedem Spieler seine eigene List(Of Integer), die zusammen kannst Du ja in eine List(Of List(Of Integer)) packen, wenn es nötig ist.
    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!
    Imo ist dieses Problem ein Ausfluss deines Grundproblems: Deinem Projekt liegt kein relationales Datenmodell zugrunde.
    Auch kein wirklich objektorientiertes Datenmodell liegt zugrunde. Es Scheint mir jedenfalls so, dass hier Karten durch Integer repräsentiert werden können (womit der Datentyp Integer natürlich überfordert ist).
    @RodFromGermany
    wie kann man so eine list of list of integer erstellen?
    kriege hier leider keine zahlen raus, sondern nur systems.collections.generic.list'1[System.Int32] -> siehe Zeile mit der For-Schleife

    VB.NET-Quellcode

    1. Dim liste01 As New List(Of Integer) From {4, 3, 2, 1}
    2. Dim liste02 As New List(Of Integer) From {8, 6, 4, 2}
    3. Dim liste03 As New List(Of Integer) From {12, 9, 6, 3}
    4. Dim supperliste As New List(Of List(Of Integer))
    5. Sub Main()
    6. supperliste.Add(liste01)
    7. supperliste.Add(liste02)
    8. supperliste.Add(liste03)
    9. For i = 0 To supperliste.Count - 1
    10. Console.WriteLine(supperliste(i.ToString))
    11. Next
    12. Console.ReadLine()
    13. End Sub


    @EDR ja also für die kleine Konsolenanwedung bin ich noch (zu unrecht?) ganz zufrieden mit den Integers, ich müsste mich da wohl noch genauer einlesen wie man das mit einem relationierten Datenmodell erstellt.

    Visual_Prog schrieb:

    Console.WriteLine(supperliste(i.ToString))
    :?:
    Bitte umgehend Option Strict On, sonst mach ich hier erstmal Feierabend.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Visual_Prog Bei zwei Listen ineinander brauchst Du auch zwei Schleifen:

    VB.NET-Quellcode

    1. supperliste.Add(liste01)
    2. supperliste.Add(liste02)
    3. supperliste.Add(liste03)
    4. For i = 0 To supperliste.Count - 1
    5. For j = 0 To supperliste(i).Count - 1
    6. Console.Write(supperliste(i)(j).ToString & " ")
    7. Next
    8. Console.WriteLine()
    9. 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!
    @RodFromGermany danke!

    @VaporiZed oh je ich hatte das eigentlich umgestellt aber da ich die List of List of Integer nicht im eigentlichen Projekt laufen ließ, sondern in eine ältere Projektmappe, hatte die das wohl noch nicht übernommen. Ist jetzt behoben.

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

    Visual_Prog schrieb:

    @EDR ja also für die kleine Konsolenanwedung bin ich noch (zu unrecht?) ganz zufrieden mit den Integers, ich müsste mich da wohl noch genauer einlesen wie man das mit einem relationierten Datenmodell erstellt.
    Wie du wolle.
    Nur ist doch ziemlich absehbar, dass die KonsolenAnwendung iwann nicht mehr ganz so klein ist (ich glaub auch garnet, dass die soo klein ist - UserInteraktion mit Konsole zu coden ist doch immer ein mords-zinnober), oder dass du mal was anneres machen willst als eine kleine KonsolenAnwendung.
    Dann kannste alles, was du dir hier erarbeitest, inne Tonne hauen, und nochmal "richtig" von vorne anfangen.
    Oder halt so weiter-wursteln, was dann immer groteskere Züge annimmt...