Moin moin, ich habe eine Arraylist, gefüllt mit einem Objekt namens TeileListe. TeileListe ist eine neue Klasse und enthält einen neuen Typ TeilArt und mehrere numerische Werte.
Wie kann ich die ArrayList sortieren? Aber dabei zuerst nach TeileArt.ToString, danach nach Breite und danach nach Hoehe! Ähnlich wie bei Excel: zuerst nach Spalte A, dann nach Spalte B…
Hab leider noch nichts passendes gefunden…
Viele Grüße bax
Hier ein kleines Beispiel:
Public Class Form1
Inherits System.Windows.Forms.Form
Private m\_myList As New ArrayList
'--------------------------------------
'Berechnungen und Erstellen der Liste
'--------------------------------------
Private Sub Form1\_load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Teil As New TeileListe
'Zuweisung diverser Teile
Teil = New TeileListe(TeileListe.TeilArt.Seitenteil, 20, 10)
m\_myList.Add(Teil)
Teil = New TeileListe(TeileListe.TeilArt.Boden, 20, 10)
m\_myList.Add(Teil)
Teil = New TeileListe(TeileListe.TeilArt.Seitenteil, 10, 10)
m\_myList.Add(Teil)
Teil = New TeileListe(TeileListe.TeilArt.Deckel, 20, 40)
m\_myList.Add(Teil)
Teil = New TeileListe(TeileListe.TeilArt.Seitenteil, 30, 10)
m\_myList.Add(Teil)
Teil = New TeileListe(TeileListe.TeilArt.Seitenteil, 20, 10)
m\_myList.Add(Teil)
'Zum testen hier die Ausgabe in eine Textbox
TextBox1.Text = ""
For i As Integer = 0 To m\_myList.Count - 1
Teil = CType(m\_myList.Item(i), TeileListe)
TextBox1.Text &= Teil.Teil.ToString & " Breite: " & Teil.nBreite & " Höhe: " & Teil.nHoehe & Environment.NewLine
Next
End Sub
'--------------------------------------
Public Class TeileListe
'Es ist ein eigener Typ drin!
Enum TeilArt
Seitenteil
Deckel
Boden
End Enum
Private m\_Teil As TeilArt
'Außerdem diverse numerische Felder
Private m\_nBreite As Integer
Private m\_nHoehe As Integer
Public Sub New()
m\_Teil = TeilArt.Seitenteil
m\_nBreite = 0
m\_nHoehe = 0
End Sub
Public Sub New(ByVal Teil As TeilArt, ByVal nBreite As Integer, ByVal nHoehe As Integer)
m\_Teil = Teil
m\_nBreite = nBreite
m\_nHoehe = nHoehe
End Sub
Property Teil() As TeilArt
Get
Return m\_Teil
End Get
Set(ByVal Value As TeilArt)
m\_Teil = Value
End Set
End Property
Property nBreite() As Integer
Get
Return m\_nBreite
End Get
Set(ByVal nValue As Integer)
nBreite = nValue
End Set
End Property
Property nHoehe() As Integer
Get
Return m\_nHoehe
End Get
Set(ByVal nValue As Integer)
m\_nHoehe = nValue
End Set
End Property
End Class