2011-04-08 68 views
2

可能重複:
Parse Delimited CSV in .NET如何將csv字符串轉換爲vb.net中的列表?

嗨,

我怎麼能轉換成一個CSV字符串轉換成在vb.net列表?

+0

你有沒有谷歌的列表這個你問它之前? – 2011-04-08 17:04:36

+1

取決於CSV字符串的「類型」。對於沒有嵌入分隔符或引號的非常原始的字符串,'string.split'將起作用。然而,這不是一個答案,因爲它與使用正則表達式解析HTML一樣「正確」。我很確定VisualBasic命名空間包含對CSV文件/流解析的支持,所以這將是一個可以看的地方。 – 2011-04-08 17:04:38

+3

請參見[SO:在.NET中解析分隔CSV](http://stackoverflow.com/questions/736629/parse-delimited-csv-in-net)它不是一個完全重複的,因爲它處理文件,但使用[TextFieldParser](http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser.aspx)的第二個答案*的相同方法*可以給出一個流,並且一個流可以使用[StreamReader]直接從字符串創建(http://msdn.microsoft.com/en-us/library/system.io.streamreader.aspx)文章中的第一個回覆也顯示了一種「安全」的手動解析方法。 – 2011-04-08 17:08:10

回答

9

你想是這樣的列表...

Dim MyString as String = "one,two,three,four,five" 
Dim MyArray() as String = Mystring.Split(",") 
Dim MyList as List(Of String) = MyArray.ToList() 

希望這有助於!

+2

「一,二」,二,三「的突破# – 2011-04-08 17:09:13

+0

非常感謝。太棒了! – chobo 2011-04-08 17:09:25

+2

在問題上,我收到一個錯誤,說Array.tolist()不是system.array的成員。我正在使用.net框架4.0 – chobo 2011-04-08 17:13:11

0

看看拆分功能。

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的溫度將是字符串

+4

「一」,「兩」,二,三的突破# – 2011-04-08 17:09:34

2

使用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個項目