是否有一个等效的String.Split返回一个通用列表?

时间:2008-10-14 15:16:41

标签: vb.net generics

我想做这样的事情:

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

当然Foo.Split会返回String的一维数组,而不是通用List。有没有办法在不迭代数组的情况下将其转换为通用List

8 个答案:

答案 0 :(得分:33)

如果您不想使用LINQ,可以执行以下操作:

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

答案 1 :(得分:7)

您可以使用List的构造函数。

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

答案 2 :(得分:6)

你真的需要一个List&lt; T&gt;或将IList&lt; T&gt;做?因为string []已经实现了后者......这也是为什么值得编程到接口的另一个原因。 (可能在这种情况下,你真的不能,不可否认。)

答案 3 :(得分:4)

最简单的方法可能是AddRange方法。

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

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

答案 4 :(得分:0)

如果使用Linq,则可以使用ToList()扩展方法

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

答案 5 :(得分:0)

以下是我的工作方式...因为分割正在寻找一个char数组,所以我剪掉了字符串中的第一个值。

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

答案 6 :(得分:0)

为了建立答案,我发现以下内容非常有用:

Return New List(Of String)(IO.File.ReadAllLines(sFileName))

答案 7 :(得分:0)

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

这样做的好处是拆分字符串将接受多个字符:

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