vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden 
Autor: Manfred X
Datum: 03.02.10 20:15

Hallo!

Bei sehr langen Listen, einer sortierbaren Eigenschaft
und einer Vielzahl von Suchpoperationen kann man
die Binärsuche der Liste einsetzen.

Zu diesem Zweck sollte in der Klasse die generische
IComparable-Schnittstelle implementiert werden
(Implements und CompareTo-Funktion).

    <Serializable()> Public Class cVendor
 
        Implements IComparable(Of cVendor)
 
        Private _VendorID As String
        Public Property VendorID() As String
 
            Get
                Return _VendorID
            End Get
            Set(ByVal value As String)
                _VendorID = value
            End Set
        End Property
 
        Private _VendorName As String
        Public Property VendorName() As String
            Get
                Return _VendorName
            End Get
            Set(ByVal value As String)
                _VendorName = value
            End Set
        End Property
 
        Public Function CompareTo(ByVal other As cVendor) As Integer _
        Implements System.IComparable(Of cVendor).CompareTo
 
            If VendorID > other._VendorID Then Return 1
            If VendorID < other.VendorID Then Return -1
            Return 0
        End Function
    End Class
Nach dem Sortieren der Liste steht die Binärsuche zur Verfügung:

        Dim lst As New System.Collections.Generic.List(Of cVendor)
        Dim rndm As New System.Random(1234)
        Dim v As cVendor
        For i As Integer = 101 To 999
            v = New cVendor
            v.VendorName = "irgendwas" + CStr(1000 - i)
            v.VendorID = CStr("ID_" & CStr(1000 - i))
            lst.Add(v)
        Next i
 
        lst.Sort()
 
        v = New cVendor : v.VendorID = "ID_100"
        Dim ind As Integer = lst.BinarySearch(v)
 
        Dim vnam As String = lst(ind).VendorName
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
List(Of MyClass) durchsuchen bzw. einen Wert finden3.730_CSF_03.02.10 16:42
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden2.011ModeratorDaveS03.02.10 17:02
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden1.714_CSF_03.02.10 17:06
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden1.705cookstdu03.02.10 17:07
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden1.671ModeratorDaveS03.02.10 19:38
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden1.570cookstdu04.02.10 14:15
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden1.639_CSF_03.02.10 17:10
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden1.662ModeratorFZelle03.02.10 17:49
Re: List(Of MyClass) durchsuchen bzw. einen Wert ...1.619_CSF_03.02.10 17:59
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden1.579ModeratorDaveS03.02.10 19:15
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden1.785ModeratorDaveS03.02.10 19:26
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden1.596_CSF_05.02.10 09:10
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden1.582ModeratorFZelle03.02.10 20:43
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden1.804Manfred X03.02.10 20:15
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden1.619ModeratorDaveS03.02.10 20:28
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden1.566Manfred X03.02.10 20:34
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden1.675ModeratorRalfE03.02.10 22:33
Re: List(Of MyClass) durchsuchen bzw. einen Wert finden1.758Manfred X03.02.10 22:49

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-2024 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