0

我已经构建了一个 VB.Net 类,它将在 VBA 中用于读取文本文件。我已经设置好了,所以用户可以指定他想要返回的文件中的哪些表。我所做的是构建表的 StringBuilder,然后将其作为锯齿状数组返回,但我不能完全正确地将构建器转换为数组部分。我希望第一级在“NewLine”上拆分,第二级在“,”上拆分。

这是否可能无需使用多个数组和\或循环?

4

2 回答 2

0

您可以使用嵌套列表和泛型来表示您的锯齿状数组。外层(行)是一个通用列表,内层(列)可能是一个字符串列表。

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

于 2013-06-24T15:12:50.127 回答
0

这将创建锯齿状数组:

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

解释:

  • 首先,我们将 StringBuilder 转换为 String:myStringBuilder.ToString()
  • 然后我们在换行符处拆分:Split({vbCrLf}, StringSplitOptions.None). 由于在 Windows 中换行符由两个字符组成,因此我们使用Split接受字符串数组的重载(因此是大括号)。
  • 在行内,我们用逗号分隔行:Split(","c)c指定这是一个字符而不是字符串。
  • ToArray最后,我们通过应用到外部和内部 LINQ 表达式,将这个可枚举的可枚举转换为数组数组。
于 2013-06-24T15:19:49.130 回答