क्या स्ट्रिंग के बराबर है। स्प्लिट जो एक सामान्य सूची देता है?

मैं ऐसा कुछ करना चाहता हूं:

Dim Foo as String = "a,b,c,d,e"
Dim Boo as List(of String) = Foo.Split(","c)

बेशक Foo.Split स्ट्रिंग की एक-आयामी सरणी देता है, सामान्य नहीं सूची । सरणी के माध्यम से इसे सामान्य <�कोड> सूची में बदलने के लिए इसे करने के बिना ऐसा करने का कोई तरीका है?

12

7 उत्तर

यदि आप LINQ का उपयोग नहीं करना चाहते हैं, तो आप यह कर सकते हैं:

Dim foo As String = "a,b,c,d,e"
Dim boo As New List(Of String)(foo.Split(","c))
31
जोड़ा
स्ट्रिंग को एक वर्ण बनाने के लिए c के बारे में नहीं पता था ... मैंने हमेशा नया चार() {","} का उपयोग किया है। यह एक * बहुत neater है
जोड़ा लेखक freefaller, स्रोत

आप सूची के निर्माता का उपयोग कर सकते हैं।

String foo = "a,b,c,d,e";
List boo = new List(foo.Split(","));
7
जोड़ा
वीबीएनईटी में जवाब देने के लिए @ बॉब किंग का जवाब दिया - धन्यवाद।
जोड़ा लेखक Herb Caudill, स्रोत
क्षमा करें मैट! बुरा न मानो!
जोड़ा लेखक Bob King, स्रोत

Do you really need a List or will IList do? Because string[] already implements the latter... just another reason why it's worth programming to the interfaces where you can. (It could be that in this case you really can't, admittedly.)

6
जोड़ा
आप IList का उपयोग कर सकते हैं, वास्तव में आपको चाहिए (भले ही मैं अपने उत्तर के कोड उदाहरण में भूल गया)
जोड़ा लेखक IAmCodeMonkey, स्रोत
मैं सहमत हूं, हालांकि मैं इस खरगोश में प्रवेश करने की कोशिश कर रहा हूं।
जोड़ा लेखक Saif Khan, स्रोत

सबसे आसान तरीका शायद AddRange विधि होगी।

Dim Foo as String = "a,b,c,d,e"
Dim Boo as List(of String)

Boo.AddRange(Foo.Split(","c))
4
जोड़ा
धन्यवाद - यह काम के साथ-साथ स्वीकार्य उत्तर भी काम करता है लेकिन थोड़ा कम कॉम्पैक्ट है।
जोड़ा लेखक Herb Caudill, स्रोत
मुझे मिली सूची में विभाजित करने का सबसे अच्छा जवाब ..
जोड़ा लेखक stigzler, स्रोत
वह कोड काम करता है? ऐसा लगता है कि यह एक NullReferenceException फेंक देगा।
जोड़ा लेखक Ryan Lundy, स्रोत
आप सही हे। मैं बू उदाहरण बनाने के लिए भूल गया।
जोड़ा लेखक amcoder, स्रोत

यहां बताया गया है कि मैं इसे कैसे कर रहा हूं ... क्योंकि विभाजन मेरी स्ट्रिंग में पहले मान को बंद करने के लिए char I की एक सरणी की तलाश में है।

var values = labels.Split(" "[0]).ToList();
0
जोड़ा

यदि आप लिंक का उपयोग करते हैं, तो आप ToList() एक्सटेंशन विधि का उपयोग कर सकते हैं

Dim strings As List = string_variable.Split().ToList();
0
जोड़ा
कॉमा से अलग स्ट्रिंग पूछने के लिए आप लिंक का उपयोग करके वास्तव में कितना प्रस्ताव देते हैं?
जोड़ा लेखक Herb Caudill, स्रोत
वह यह पूछताछ नहीं कर रहा है। ToList() एक्सटेंशन विधि कोड बंदर अपने उत्तर में दिखाता है केवल "लिंक" के रूप में जाना जाने वाला कार्यक्षमता वर्ग का हिस्सा है (और LINQ क्वेरी का समर्थन करने के लिए उपयोग किया जाता है, लेकिन आप इसे अन्य चीजों के लिए उपयोग कर सकते हैं)
जोड़ा लेखक James Curran, स्रोत

उत्तर पर निर्माण करने के लिए, मैंने निम्नलिखित बहुत उपयोगी पाया:

Return New List(Of String)(IO.File.ReadAllLines(sFileName))
0
जोड़ा