Array sortierung ändern...

  • VB.NET
  • .NET (FX) 1.0–2.0

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

    Array sortierung ändern...

    Moin
    Wie kann ich ein String Array die Sortierung ändern.

    VB.NET-Quellcode

    1. Public Function Reverse(ByVal s As String) As String
    2. Dim c As Char() = s.ToCharArray()
    3. Array.Reverse(c)
    4. Return New String(c)
    5. End Function

    Dieser Code ändert nur den String.
    Ich möchte das mein ganzes Array anders sortiert wird.
    Kann mir jemand dabei helfen?
    By


    @RushDen
    stimmt, das habe ich gerade nicht gesehen.
    Ich suche eine Lösung, wäre super wenn jemand die Lösung hat.

    @an alle

    VB.NET-Quellcode

    1. Public Sub ReverseArray(ByRef myArray() As String)
    2. Dim i As Integer = LBound(myArray)
    3. Dim j As Integer = UBound(myArray)
    4. While i < j
    5. Dim tmpvar As String = myArray(i)
    6. myArray(i) = myArray(j)
    7. myArray(j) = tmpvar
    8. i = i + 1
    9. j = j - 1
    10. End While
    11. End Sub


    Quelle:
    website.erhard-rainer.com/comp…g/vbneteinenarrayumdrehen


    Ich habe das Problem nun gelöst!
    Vielen Dank!

    @an alle
    Vielen Dank, gut zu wissen, dass es bereits diese Funktion im .NET Framework gibt.

    VB.NET-Quellcode

    1. Array.Reverse()

    Visual Basic.NET 8o
    MS-SQL
    8o

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

    @Cheffboss : huh ?

    C#-Quellcode

    1. int[] a = new int[] { 0, 1, 2, 3, 4, 5 };
    2. a = a.Reverse().ToArray();
    3. Console.WriteLine(string.Join(" ", a));
    4. Console.ReadLine();


    --> "5 4 3 2 1 0"
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais

    Oh mein Gott - manchmal binnich für Zensur im Internet.
    Ist die Array.Reverse-Funktion iwie nicht gut, oder warum muss man da nun eine eigene Reverse-Funktion schreiben?
    Und das auch noch veröffentlichen?

    €dit - @Plexian: Deine Reverse-Methode gibts nicht - oder ist das bei Linq dabei.

    Naja, jdfs. probiert doch einfach mal

    C#-Quellcode

    1. Array.Reverse(ref a);

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

    @Cheffboss Hier mal ein Beispiel für Integer-Sortierung in beiden Richtungen ohne LINQ:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. Dim a() = New Integer() {1, 2, 5, 4, 3}
    4. Dim b() = New Integer() {1, 2, 5, 4, 3}
    5. Dim cr As New CompareReverse()
    6. Array.Sort(a) ' vorwärts
    7. Array.Sort(b, cr) ' rückwärts
    8. Dim txt = ""
    9. For i = 0 To a.Length - 1
    10. txt &= String.Format("{0} {1}", a(i), b(i)) & Environment.NewLine
    11. Next
    12. MessageBox.Show(txt)
    13. End Sub
    14. End Class
    15. Public Class CompareReverse
    16. Implements IComparer(Of Integer)
    17. Public Function Compare(ByVal x As Integer, ByVal y As Integer) As Integer Implements IComparer(Of Integer).Compare
    18. ' Compare y and x in reverse order.
    19. Return y.CompareTo(x)
    20. End Function
    21. End Class
    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!