द्वारा एक VB.net सूची को सॉर्ट करना मेरे पास एक सूची है (यानी Dim nList as new List(of className)
)। प्रत्येक वर्ग में zIndex
नामक एक संपत्ति है (यानी className.zIndex
)। सूची के सभी तत्वों में zIndex चर द्वारा सूची के तत्वों को सॉर्ट करना संभव है?कक्षा मूल्य
23
A
उत्तर
41
मान लिया जाये कि आप अपने निपटान में LINQ है:
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
या अगर LINQ अपने बात नहीं है:
Dim list = New List(Of Person)()
list.Sort(Function(x, y) x.zIndex.CompareTo(y.zIndex))
'Will sort list in place
LINQ और अधिक लचीलापन प्रदान करता है; जैसे कि आप एक से अधिक चीज़ों को ऑर्डर करना चाहते हैं, तो ThenBy
का उपयोग करने में सक्षम होने के नाते। यह थोड़ा क्लीनर वाक्यविन्यास भी बनाता है।
8
आप एक कस्टम तुलना का उपयोग सूची सॉर्ट करने के लिए कर सकते हैं:
nList.Sort(Function(x, y) x.zIndex.CompareTo(y.zIndex))
6
यदि नहीं LINQ, तो आप अपने वर्ग के लिए IComparable (className के) को लागू कर सकते हैं:
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
और फिर से आपका कोड:
nList.Sort()
+0
आप उस संपूर्ण 'तुलना करने के लिए' विधि को 'वापस _ZIndex.CompareTo (अन्य.ZIndex) पर वापस कर सकते हैं। – vcsjones
संबंधित मुद्दे
- 1. समतुल्य कक्षा परीक्षण बनाम सीमा मूल्य परीक्षण
- 2. मूल्य निर्माणकर्ताओं में कक्षा की बाधाओं को निर्दिष्ट करना
- 3. एक तरह से एक प्रकार कक्षा में एक निरंतर मूल्य
- 4. कक्षा मूल्य प्राप्त करने के लिए event.target का उपयोग करें?
- 5. मूल्य
- 6. मूल्य
- 7. कक्षा
- 8. कक्षा
- 9. कक्षा सूची के लिए कक्षा संरचना कक्षा?
- 10. कक्षा कक्षा - उदाहरण बनाम कक्षा के तरीके
- 11. कक्षा बी को कक्षा
- 12. कक्षा ए कक्षा ए
- 13. आंतरिक मूल्य शून्य मूल्य
- 14. ByRef कक्षा
- 15. कक्षा
- 16. कक्षा
- 17. कक्षा
- 18. कक्षा
- 19. कक्षा
- 20. कक्षा
- 21. कक्षा
- 22. कक्षा
- 23. कक्षा
- 24. कक्षा
- 25. कक्षा
- 26. कक्षा
- 27. कक्षा
- 28. कक्षा
- 29. कक्षा
- 30. कक्षा
मैं LINQ उदाहरण का उपयोग करने में असमर्थ था, मैं इसे कैसे सक्षम करूं? हालांकि मुझे दूसरा काम करने के लिए मिला, धन्यवाद :) – FreeSnow
@DalexL यह आपके द्वारा लक्षित फ्रेमवर्क संस्करण पर निर्भर करता है। आपको 3.5 या उससे अधिक की आवश्यकता है। वीबी.नेट कंपाइलर को आपके लिए सिस्टम.लिंक नेमस्पेस आयात करना चाहिए। (परियोजना के गुणों के संदर्भ टैब को देखें)। – vcsjones
ठीक है, मैं तिथियों की तुलना कर रहा हूं। जब मैं अपनी लाइन 'ए। सॉर्ट (फ़ंक्शन (एक्स, वाई) x.DelegationDate.CompareTo (y.DelegationDate) का उपयोग करता हूं)', यह बिल्कुल सॉर्ट नहीं करता है। यह इसे मूल क्रम में छोड़ देता है। –