2012-11-07 29 views
16

उम्मीद है कि कुछ अनुभव के साथ अधिकांश प्रोग्रामर को एक साधारण सवाल है।सूची (स्ट्रिंग का) या ऐरे या ऐरेलिस्ट

डेटाटाइप क्या है जो मुझे ऐसा करने देता है?

Dim lstOfStrings as *IDK* 

Dim String0 As String = "some value" 
Dim String1 As String = "some value" 
Dim String2 As String = "some value" 
Dim String3 As String = "some value" 
Dim String4 As String = "some value" 
Dim String5 As String = "some value" 


lstOfStrings.add(String0, String1, String2, String3) 

मैं इस

Dim s1 = lstOfStrings(0) 
Dim s2 = lstOfStrings(1) 
Dim s3 = lstOfStrings(2) 
Dim s4 = lstOfStrings(3) 

की तरह इन का उपयोग होता अगर मैं (स्ट्रिंग की) सूची का उपयोग मैं (एक समय में) केवल सूची में एक बात .add करने में सक्षम हूँ, और मेरे फ़ंक्शन मैं कई मानों को स्टोर करने में सक्षम होना चाहता हूं (एक समय में)।

समाधान:

Private Function Foo() As List(Of String) 


    Dim temp1 As String 
    Dim temp2 As String 
    Dim temp3 As String 

    Dim temp4 As String 
    Dim temp5 As String 
    Dim temp6 As String 

    Dim inputs() As String = {temp1, temp2, temp3, temp4, temp5, temp6} 

    Dim lstWriteBits As List(Of String) = New List(Of String)(inputs) 


    Return lstWriteBits 
End Function 

उत्तर

25

List(Of String) कि, ज्यादातर संभाल लेंगे करने के लिए - आप या तो AddRange का उपयोग करने के लिए आइटम का संग्रह, या Add जोड़ने की जरूरत है, हालांकि एक समय में एक जोड़ें:

lstOfString.Add(String1) 
lstOfString.Add(String2) 
lstOfString.Add(String3) 
lstOfString.Add(String4) 
जल्दी में अपने प्रारंभिक मूल्यों को प्राप्त यह अभी भी आप बाद में आइटम जोड़ने के लिए के रूप में वांछित अनुमति देगा

Dim inputs() As String = { "some value", _ 
           "some value2", _ 
           "some value3", _ 
           "some value4" } 

Dim lstOfString as List(Of String) = new List(Of String)(inputs) 

' ... 
Dim s3 = lstOfStrings(3) 

, लेकिन यह भी:

आप, जाना जाता है मानों को जोड़ने के रूप में आपको बताएंगे कि कर रहे हैं, एक अच्छा विकल्प की तरह कुछ का उपयोग करने के लिए है।


संपादित करें:

अपने कोड में, आप घोषणा को ठीक करने की जरूरत है। परिवर्तित करें:

Dim lstWriteBits() As List(Of String) 

करने के लिए:

Dim lstWriteBits As List(Of String) 

वर्तमान में, आप सूची (स्ट्रिंग के) में ऑब्जेक्ट की श्रृंखला की घोषणा कर रहे हैं।

+0

क्या मैं स्ट्रिंग 1 मान प्राप्त करने के लिए प्रत्येक आइटम जैसे स्ट्रिंग = lstOfString (0) के रूप में कुछ आइटम तक पहुंच सकता हूं? – Brandon

+1

@ ब्रैंडनजे मैंने अभी आपकी पहुंच आवश्यकताओं को दिखाने के लिए संपादित किया है - जो आपको चाहिए जो आपको चाहिए? –

+0

आपकी मदद के लिए बहुत बहुत धन्यवाद, लेकिन जब भी मैं कोशिश करता हूं, तब भी मैं गलत कर रहा हूं, और [system.collections.generic.list (स्ट्रिंग का) प्रकार का मूल्य प्राप्त कर सकता हूं 'cannbot को 1-आयामी सरणी में परिवर्तित किया जा सकता है System.Colelctions.Generic.List (स्ट्रिंग का) '] मैं अपनी पोस्ट संपादित करने और अपना वास्तविक कोड – Brandon

2

न तो संग्रह आपको इस तरह से आइटम जोड़ने देगा।

Imports System.Runtime.CompilerServices 
Module StringExtensions 

    <Extension()> 
    Public Sub Add(ByVal list As List(Of String), ParamArray values As String()) 
    For Each s As String In values 
     list.Add(s) 
    Next 
    End Sub 

End Module 

अब आप एक कॉल में एक से अधिक मूल्य जोड़ सकते हैं:

Dim lstOfStrings as New List(Of String) 
lstOfStrings.Add(String1, String2, String3, String4) 
16

आप क्या कर सकते हैं

आप examle List(Of String) के लिए बनाने के लिए एक विस्तार कर सकते हैं एक Add विधि ऐसा कर सकते हैं कि है इस तरह कुछ,

Dim lstOfStrings As New List(Of String) From {"Value1", "Value2", "Value3"} 

Collection Initializers

+2

"यह वह लाइनर है जिसे आप ढूंढ रहे हैं ..." – bendecko

0

आप समारोह में IList(Of String) उपयोग कर सकते हैं:

Private Function getWriteBits() As IList(Of String) 


Dim temp1 As String 
Dim temp2 As Boolean 
Dim temp3 As Boolean 


'Pallet Destination Unique 
Dim temp4 As Boolean 
Dim temp5 As Boolean 
Dim temp6 As Boolean 

Dim lstWriteBits As Ilist = {temp1, temp2, temp3, temp4, temp5, temp6} 

Return lstWriteBits 
End Function 

उपयोग list1.AddRange(list2) सूचियों

आशा है कि यह मदद करता है जोड़ने के लिए।