هل هناك ما يعادل String.Split تقوم بإرجاع قائمة عامة؟

أود القيام بشيء من هذا القبيل:

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

بالطبع Foo.Split إرجاع صفيف أحادي البعد من String ، وليس عام List . هل هناك طريقة للقيام بذلك دون التكرار من خلال المصفوفة لتحويلها إلى قائمة عامة؟

12

7 إجابة

إذا كنت لا ترغب في استخدام LINQ ، فيمكنك القيام بما يلي:

Dim foo As String = "a,b,c,d,e"
Dim boo As New List(Of String)(foo.Split(","c))
31
وأضاف
لم أكن على علم بـ c لعمل سلسلة أحرف ... لقد استعملت جديد Char() {"،"} بدلاً من ذلك. هذا * الكثير
وأضاف المؤلف freefaller, مصدر

يمكنك استخدام منشئ القائمة.

String foo = "a,b,c,d,e";
List boo = new List(foo.Split(","));
7
وأضاف
أعطى إجابة علىBob King للإجابة في VB.NET - شكرا.
وأضاف المؤلف 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, مصدر
أوافق ، على الرغم من أنني أحاول الوصول إلى هذا habbit.
وأضاف المؤلف 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, مصدر
أنت على حق. لقد نسيت إنشاء نسخة Boo.
وأضاف المؤلف amcoder, مصدر

هنا كيف أفعل ذلك ... لأن الانقسام يبحث عن مصفوفة من الحرف الأول أقطع القيمة الأولى في سلسلتي.

var values = labels.Split(" "[0]).ToList();
0
وأضاف

إذا كنت تستخدم Linq ، يمكنك استخدام أسلوب ملحق ToList ()

Dim strings As List = string_variable.Split().ToList();
0
وأضاف
كيف بالضبط تقترح استخدام Linq للاستعلام عن سلسلة مفصولة بفواصل؟
وأضاف المؤلف Herb Caudill, مصدر
لا يستجوبها. طريقة ملحق ToList() يظهر Code Monkey في إجابته جزءًا فقط من فئة الوظائف الشائعة المعروفة باسم "Linq" (ويتم استخدامها لدعم استعلام LINQ ، ولكن يمكنك استخدامه لأشياء أخرى)
وأضاف المؤلف James Curran, مصدر

للبناء على الإجابة ، وجد Ive ما يلي مفيدًا جدًا:

Return New List(Of String)(IO.File.ReadAllLines(sFileName))
0
وأضاف