vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: List of sortieren nach variablen Felder- oder Spaltennamen 
Autor: Manfred X
Datum: 12.11.13 16:13

Vielleicht so ...???? - schnell geproggt:

'Die Klasse
Public Structure LElement
 
    Public Property SpalteA As String
    Public Property SpalteB As String
    Public Property SpalteC As String
 
End Structure
 
'Der Comparer
Public Class HierarchicalComparer
    Implements IComparer(Of LElement)
 
    Private _compareorder() As String
 
    Public Property CompareOrder() As String()
        Set(value As String())
            _compareorder = value
        End Set
        Get
            Return _compareorder
        End Get
    End Property
 
    Private Function GetValues(el As LElement) As String()
        Dim lst As New List(Of String)
        With el
            For i As Integer = 0 To _compareorder.Length - 1
 
                Select Case _compareorder(i)
                    Case "SpalteA"
                        lst.Add(.SpalteA)
                    Case "SpalteB"
                        lst.Add(.SpalteB)
                    Case "SpalteC"
                        lst.Add(.SpalteC)
                    Case Else
                        Throw New InvalidOperationException _
                           ("Unbekannte Sortierspalte")
                End Select
            Next
        End With
        Return lst.ToArray
    End Function
 
    Public Function Compare(x As LElement, y As LElement) As Integer _
        Implements System.Collections.Generic.IComparer(Of LElement).Compare
 
        Dim xe() As String = GetValues(x)
        Dim ye() As String = GetValues(y)
 
        For i As Integer = 0 To xe.Length - 1
            Dim cr As Integer = xe(i).CompareTo(ye(i))
            If Not cr = 0 Then Return cr
        Next i
        Return 0
    End Function
End Class
Anwendung:
        Dim l As New List(Of LElement)
 
        For i As Integer = 1 To 30
            Dim it As New LElement
            it.SpalteA = Chr(i + 65)
            it.SpalteB = Chr(90 - i)
            it.SpalteC = Chr(CInt(Rnd() * 10 + 65))
            l.Add(it)
        Next i
 
        Dim hc As New HierarchicalComparer
        hc.CompareOrder = {"SpalteC", "SpalteB"}
 
        l.Sort(hc)


Beitrag wurde zuletzt am 12.11.13 um 16:15:42 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
List of sortieren nach variablen Felder- oder Spaltennamen1.088gnomhawaii12.11.13 13:04
Re: List of sortieren nach variablen Felder- oder Spaltennam...602Manfred X12.11.13 13:26
Re: List of sortieren nach variablen Felder- oder Spaltennam...616gnomhawaii12.11.13 14:46
Re: List of sortieren nach variablen Felder- oder Spaltennam...635Manfred X12.11.13 16:13

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel