Bir listem var (Dim nList as new List(of className)
). Her sınıfın zIndex
(yani className.zIndex
) adlı bir özelliği vardır. Listenin öğelerini, listenin tüm öğelerindeki zIndex değişkenine göre sıralamak mümkün müdür?VB.net Listesini bir sınıf değerine göre sıralama
23
A
cevap
41
emrinde LINQ var varsayarsak:
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
Veya LINQ şey değilse:
Dim list = New List(Of Person)()
list.Sort(Function(x, y) x.zIndex.CompareTo(y.zIndex))
'Will sort list in place
LINQ daha fazla esneklik sunar; Birden fazla şeyle sipariş vermek isterseniz ThenBy
'u kullanabilmeniz gibi. Ayrıca biraz daha temiz bir sözdizimi yapar. , O zaman sınıfına (ClassName Of) IComparable uygulayabilir
nList.Sort(Function(x, y) x.zIndex.CompareTo(y.zIndex))
8
6
LINQ Değilse: den sonra
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
ve
+0
'CompareTo' yönteminin tamamını, _ZIndex.CompareTo (other.ZIndex) 'i döndürmek için kısaltabilirsiniz – vcsjones
İlgili konular
- 1. sıralama listesi - descedent amacıyla Tarihe Göre Nesnelerin listesini sıralamak için
- 2. VB.Net Sınıf/Yöntem iyileştirme
- 3. Özel bir sıraya göre sıralama
- 4. r eşitsiz boyutlu vektörlerin bir listesini sıralama
- 5. Bir sütun değerine göre yinelenen satırları kaldırın
- 6. Alanının değerine göre bir numara alabilir miyim?
- 7. Bir dikdörtgeni dict.values sayısal değerine göre sıralayın
- 8. Pandalar sütun değerine göre sırala
- 9. Lo-çizgi sıralama dizi dize değerine dayalı
- 10. Yakut/raylarda, tarihin bazen boş olabileceği bir tarih değerine nasıl göre sıralama yapabilirim?
- 11. Haritaları şuna göre haritalara göre sıralama
- 12. Seçme değerine göre angularjs süzgeç sonuçları
- 13. XML düğümlerini XSLT'deki özellik değerine göre gruplandırma
- 14. Değere göre bir sözlüğü sıralama sonra anahtar
- 15. Linq: Listeyi başka bir listeye göre sıralama
- 16. 212 Tamsayı dizisini bir sütuna göre sıralama
- 17. İçeren Verilere Göre Yapıların Bir Vektörünü Sıralama
- 18. Bir listedeki en yüksek ortalamaya göre sıralama
- 19. Listelerin listesini en düşük değere göre sırala
- 20. Scandir'i kullanıp boyuta göre sıralama
- 21. Sıralama TarihZaman Listesi, Zamana göre
- 22. Bazı elemanlara göre sıralama listeleri
- 23. Python listesini işleve göre sırala
- 24. Laravel sayfa sırasına göre sıralama
- 25. Verileri aylara göre filtrelenmiş iki tarih değerine göre filtrele
- 26. Özel mysql, alan değerine göre sırala
- 27. Anonim sınıf kullanarak java sıralama
- 28. Arama sonuçlarını meta_key değerine göre sırala
- 29. Çerez değerine göre htaccess yönlendirmesi nasıl yapılır
- 30. Pandalar DataFrame'i sütun değerine göre bölünmüş
LINQ örneğini kullanamadım, nasıl etkinleştiririm? Çalışmak için ikinci bir tane var, teşekkürler :) – FreeSnow
@DalexL Hedeflediğiniz çerçeve sürümüne bağlıdır. 3.5 ya da daha büyük lazım. VB.NET Derleyici System.Linq ad alanını sizin için almalı. (Proje'nin özelliklerinin Referanslar sekmesine bakın). – vcsjones
Tamam, tarihleri karşılaştırıyorum. "A.Sort (işlev (x, y) x.DelegationDate.CompareTo (y.DelegationDate)) satırımı kullandığımda, hiç sıralanmaz. Orijinal düzende bırakır. –