2008-10-14 50 views
12

我想要做這樣的事情:是否有與String.Split等效的返回通用列表?

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

當然Foo.Split返回String一維數組,而不是一個通用的List。有沒有辦法做到這一點,而不需要遍歷數組來將它變成一個通用的List

回答

31

如果你不想使用LINQ,你可以這樣做:

Dim foo As String = "a,b,c,d,e" 
Dim boo As New List(Of String)(foo.Split(","c)) 
+1

不知道把字符串作爲字符的`c` ......我一直使用`new Char(){「,」}`代替。這是一個**很多* neater – freefaller 2016-12-31 13:56:27

0

如果你使用Linq,你可以使用ToList()擴展方法

Dim strings As List<string> = string_variable.Split().ToList<string>(); 
+0

正是你打算如何使用LINQ查詢以逗號分隔的字符串? – 2008-10-14 15:22:12

+1

他不查詢它。 ToList()擴展方法Code Monkey在他的回答中顯示的只是通用名爲「Linq」的功能類的一部分(並且用於支持LINQ查詢,但您可以將其用於其他事情) – 2008-10-14 15:28:47

7

您可以使用List的構造函數。

String foo = "a,b,c,d,e"; 
List<String> boo = new List<String>(foo.Split(",")); 
+1

給@Bob國王回答在VB.NET - 謝謝。 – 2008-10-14 15:25:50

+0

對不起墊子!別往心裏放! – 2008-10-14 19:26:50

6

你真的需要一個List < T>或將IList的< T>嗎?因爲string []已經實現了後者...只是另一個值得編程的接口。 (當然,在這種情況下,你真的不能這樣做)。

4

最簡單的方法可能是AddRange方法。

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

Boo.AddRange(Foo.Split(","c)) 
0

這是我如何做它...因爲分裂正在尋找一個字符數組我剪掉我的字符串中的第一個值。

var values = labels.Split(" "[0]).ToList<string>(); 
0

要建立對答案,我已經發現了以下非常有幫助:

Return New List(Of String)(IO.File.ReadAllLines(sFileName)) 
相關問題