如何在vb.net中将csv字符串转换为列表?

5

你在问问题之前有没有先谷歌一下? - Devin Burke
1
取决于CSV字符串的“类型”。对于一个非常原始的字符串,没有嵌入分隔符或引号,string.split可以工作。然而,这不是一个答案,因为它与使用正则表达式解析HTML一样“正确”。我相信VisualBasic命名空间包含支持CSV文件/流解析的功能,所以那将是一个值得探索的地方。 - user166390
3
请参见SO:在.NET中解析分隔的CSV。这不是完全重复,因为它涉及文件,但可以使用第二个答案所采用的相同方法(使用TextFieldParser)提供流,并且可以使用StreamReader直接从字符串创建流。帖子中的第一个回复还展示了一种“更安全”的手动解析方法。 - user166390
3个回答

14

你想要像这样的东西...

Dim MyString as String = "one,two,three,four,five"
Dim MyArray() as String = Mystring.Split(",")
Dim MyList as List(Of String) = MyArray.ToList()
希望这能有所帮助!

3
对于 "one,two",two,three 的断点(Breaks) - user166390
2
在这个问题上,我收到了一个错误,指出 Array.tolist() 不是 system.array 的成员。我正在使用 .net framework 4.0。 - chobo
这很有帮助。 - Alexis Villar
@chobo或者任何阅读这篇文章的人,你需要导入System.LinQ。 - Nandostyle

4

使用Linq:

Dim parts As String = "1,2,3,4"
Dim itemsList As List(Of String)

itemsList = (From s In parts.Split(",")
            Select s).ToList()

提供一个包含4个项目的列表。

2

看一下split函数。

    Dim a As String
    a = "data1,2,3,4,5"

    Dim b() As String
    b = a.Split(",")

    Dim c As List(Of String)
    c = b.ToList()

c将是一个字符串列表


5
"one, two", 两个, 三个的休息时间 - user166390
你也可以这样编写代码:Dim a As String a = "data1,2,3,4,5" Dim c As List(Of String) c = a.Split(",").ToList() - 8oris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接