यदि मैं तत्वों की संख्या के बारे में कोई अग्रिम जानकारी के साथ डेटा जमा कर रहा हूं, तो मैं एक सरणी का उपयोग कर सकता हूं और इसे Redim Preserve
का उपयोग करके आवश्यकतानुसार बढ़ा सकता हूं, लेकिन List आमतौर पर अधिक कुशल होगा। उदाहरण के लिए:क्या सूची (संरचना का) के भीतर तत्वों को अपडेट करना संभव है?
Dim vehicle As New List(Of String)(4)
vehicle.Add("car")
vehicle.Add("bicycle")
vehicle.Add("truck")
vehicle.Add("taxi")
vehicle.Add("motorbike")
vehicle.Add("bus")
हालांकि 4 की मेरा अनुमान के रूप में तत्वों की अधिकतम संख्या गलत था, मैं नए तत्व समस्याओं के बिना जोड़ सकते हैं।
मैं तत्वों तो प्रदर्शित कर सकते हैं:
For inx = 0 To vehicle.Count - 1
Debug.Print(" " & inx & " " & vehicle(inx))
Next
और मिलती है:
0 car
1 bicycle
2 truck
3 taxi
4 motorbike
5 bus
के रूप में आवश्यक और पुन: प्रदर्शित मैं तत्वों को अपडेट कर सकते हैं:
vehicle(2) = "coach"
vehicle(4) = "cart"
For inx = 0 To vehicle.Count - 1
Debug.Print(" " & inx & " " & vehicle(inx))
Next
पाने के लिए:
0 car
1 bicycle
2 coach
3 taxi
4 cart
5 bus
साथ सूची की सामग्री को प्रदर्शित
Structure SpersonDtl
Dim familyName As String
Dim givenName As String
Dim age As Integer
End Structure
Dim personDtl As New List(Of SpersonDtl)(4)
Dim personDtlCrnt As SpersonDtl
personDtlCrnt.familyName = "Smith"
personDtlCrnt.givenName = "John"
personDtlCrnt.age = 20
personDtl.Add(personDtlCrnt)
personDtlCrnt.familyName = "Brown"
personDtlCrnt.givenName = "Clare"
personDtlCrnt.age = 21
personDtl.Add(personDtlCrnt)
personDtlCrnt.familyName = "Wilson"
personDtlCrnt.givenName = "David"
personDtlCrnt.age = 22
personDtl.Add(personDtlCrnt)
personDtlCrnt.familyName = "Fox"
personDtlCrnt.givenName = "Wendy"
personDtlCrnt.age = 23
personDtl.Add(personDtlCrnt)
: +०५३६९१३६३२१०
मैं लगभग के रूप में आसानी संरचनाओं की एक सूची बना सकते हैं
For inx = 0 To personDtl.Count - 1
Debug.Print(" " & inx & " " & personDtl(inx).givenName & " " & _
personDtl(inx).familyName & " " & personDtl(inx).age)
Next
देता है:
0 John Smith 20
1 Clare Brown 21
2 David Wilson 22
3 Wendy Fox 23
तो personDtl एक सरणी थे, मैं आसानी से एक तत्व अद्यतन कर सकते हैं। वेंडी की उम्र सही करने के लिए, मैं लिखने होगा:
personDtl(3).age = 24
हालांकि, एक सूची के साथ एक ही बयान, personDtl(3).age
के तहत एक ब्लू लाइन में परिणाम और त्रुटि संदेश: "अभिव्यक्ति एक मूल्य है और इसलिए का लक्ष्य नहीं हो सकता । एक काम "
सबसे अच्छा समाधान मैंने पाया है: बड़े, जटिल संरचनाओं में जानकारी
Dim personDtlCrnt As SpersonDtl
personDtlCrnt = personDtl(3)
personDtlCrnt.age = 24
personDtl(3) = personDtlCrnt 'Write back.
अपने आवेदन में, मैं जमा कर रहा हूँ। सूची में से किसी तत्व को कॉपी करने के लिए, जानकारी का एक नया आइटम जोड़ें और फिर इसे कॉपी करें एक प्रभावी प्रक्रिया नहीं होगी।
मैं वैकल्पिक दृष्टिकोण के लिए किसी भी सुझाव के लिए आभारी रहूंगा।
लिंक के लिए धन्यवाद। यह कुछ सावधानीपूर्वक पढ़ने लगेगा। –
मुझे लिस्टों के लिए बहुत सारी मदद मिल सकती है और कक्षाओं के लिए बहुत मदद मिल सकती है लेकिन कक्षाओं की सूची के लिए कोई भी नहीं। फिर भी, मैंने अपना छोटा परीक्षण केस काम करने में कामयाब रहा है। मुझे अध्ययन और प्रयोग पर अधिक समय बिताना होगा, लेकिन यह स्पष्ट रूप से सही दृष्टिकोण है। धन्यवाद। –