2013-06-24 77 views
0

我已經構建了一個VB.Net類,它將用於VBA中讀取文本文件。我已經設置好了,所以用戶可以指定他想返回的文件中的表格。我所做的是構建表的StringBuilder,然後將其作爲鋸齒狀數組返回,但我無法完全將構建器轉換爲數組部分。我希望第一層被拆分成「NewLine」,第二層被拆分成「,」。將StringBuilder轉換爲鋸齒形數組

這是可能的,而不必使用多個數組和\或循環?

回答

0

這將創建交錯數組:

Dim myArray = (From row In myStringBuilder.ToString().Split({vbCrLf}, StringSplitOptions.None) 
       Select (From col In row.Split(","c) 
         Select col 
        ).ToArray() 
      ).ToArray() 

說明:

  • 首先,我們StringBuilder的轉換爲字符串:myStringBuilder.ToString()
  • 然後我們各執換行符:​​。由於換行符由Windows中的兩個字符組成,因此我們使用Split overload that accepts a string array(因此使用大括號)。
  • 在行內,我們用逗號分割該行:Split(","c)c指定這是一個字符而不是字符串。
  • 最後,我們通過將ToArray應用於外部以及內部LINQ表達式,將此枚舉的枚舉類型轉換爲數組數組。
+0

工作就像一個魅力!感謝Heinzi! – JoeB

0

您可以使用嵌套列表和泛型來表示鋸齒陣列。外部(行)將是一個通用列表,內部(col)可以是一個字符串列表。

其他方法可以利用XML或LINQ,但效率較低。

相關問題