Mam listę (tj. Dim nList as new List(of className)
). Każda klasa ma właściwość o nazwie zIndex
(tj. className.zIndex
). Czy można sortować elementy listy za pomocą zmiennej zIndex we wszystkich elementach listy?Sortowanie listy VB.net według wartości klasy
23
A
Odpowiedz
41
Zakładając, że LINQ do Państwa dyspozycji:
Sub Main()
Dim list = New List(Of Person)()
'Pretend the list has stuff in it
Dim sorted = list.OrderBy(Function(x) x.zIndex)
End Sub
Public Class Person
Public Property zIndex As Integer
End Class
Lub jeśli LINQ nie jest twoja sprawa:
Dim list = New List(Of Person)()
list.Sort(Function(x, y) x.zIndex.CompareTo(y.zIndex))
'Will sort list in place
LINQ oferuje większą elastyczność; takie jak możliwość użycia ThenBy
, jeśli chcesz zamówić więcej niż jedną rzecz. Daje także nieco czystszą składnię.
8
6
Jeśli nie LINQ, można zaimplementować IComparable (z className) do swojej klasy:
Public Class ClassName
Implements IComparable(Of ClassName)
'Your Class Stuff...
Public Function CompareTo(ByVal other As ClassName) As Integer Implements System.IComparable(Of ClassName).CompareTo
If _ZIndex = other.ZIndex Then
Return 0
Else
If _ZIndex < other.ZIndex Then
Return -1
Else
Return 1
End If
End If
End Function
End Sub
a następnie z Twój kod:
nList.Sort()
+0
Możesz skrócić całą metodę 'CompareTo' do' Return _ZIndex.CompareTo (other.ZIndex) ' – vcsjones
Powiązane problemy
- 1. Sortowanie listy według daty DateTime
- 2. sortowanie według wartości python
- 3. Sortowanie listy Pythona według funkcji
- 4. Sortowanie widoków CouchDB według wartości
- 5. Przyłącz listy według wartości
- 6. elekwentne listy laravel - Sortowanie listy wartości kolumn
- 7. Sortowanie listy dicts przez dict wartości
- 8. Sortowanie listy obiektów według wielu pól
- 9. sortowanie listy krotek według dowolnego klucza
- 10. sortowanie list według grupy
- 11. Niestandardowe sortowanie mysql według wartości pola
- 12. Pandy: Sortowanie kolumn według ich średniej wartości
- 13. Sortowanie Swift Array słowników według wartości klucza
- 14. Asocjatywne sortowanie tabeli według wartości w Lua
- 15. Sortowanie map na mapach według wartości
- 16. Sortowanie wielu wartości według rosnącej i malejącej wartości
- 17. Sortowanie JavaPairRDD najpierw według wartości, a następnie według klucza
- 18. sortowanie listview Sortowanie według określonej kolumny
- 19. sortowanie list według niektórych elementów
- 20. Sortowanie listy wartościami pustymi
- 21. sortowanie JSON według daty
- 22. Sortowanie plików według daty
- 23. Sortowanie listy według częstotliwości liter w pythonie (kolejność malejąca)
- 24. Sortowanie 10.000 zdjęć według koloru
- 25. Python: sortowanie listy zależności
- 26. Sortowanie PHP tablice numeryczne według klucza wartości malejącej
- 27. Sortowanie std :: map według wartości przed wyjściem i zniszczeniem
- 28. Sortowanie NSA Zmieniaj słowniki według wartości klucza w słownikach
- 29. Sortowanie obiektu ArrayList według wartości atrybutu w Javie
- 30. Sortowanie Arkusz danych według wartości kolumn przy użyciu Excel VBA
Nie mogłem użyć przykładu LINQ, w jaki sposób mogę to włączyć? Mam drugi do pracy, dziękuję :) – FreeSnow
@DalexL To zależy od wersji ramowej, na którą celujesz. Potrzebujesz 3,5 lub więcej. Kompilator VB.NET powinien zaimportować dla ciebie przestrzeń nazw System.Linq. (Zobacz na karcie Referencje właściwości projektu). – vcsjones
OK, porównuję daty. Kiedy używam mojej linii 'a.Sort (funkcja (x, y) x.DelegationDate.CompareTo (y.DelegationDate))', nie sortuje wcale. Pozostawia to w pierwotnej kolejności. –