我想做这样的事情:
Dim Foo as String = "a,b,c,d,e"
Dim Boo as List(of String) = Foo.Split(","c)
当然Foo.Split
会返回String
的一维数组,而不是通用List
。有没有办法在不迭代数组的情况下将其转换为通用List
?
答案 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