Vb.net 将StringBuilder转换为锯齿阵列
我已经构建了一个VB.Net类,该类将在VBA中用于读取文本文件。我已经对它进行了设置,以便用户可以指定要返回的文件中的哪些表。我所做的是构建一个表的StringBuilder,然后将其作为锯齿数组返回,但是我不能完全正确地将生成器转换为数组部分。我希望第一层在“换行符”上拆分,第二层在“,”上拆分Vb.net 将StringBuilder转换为锯齿阵列,vb.net,jagged-arrays,Vb.net,Jagged Arrays,我已经构建了一个VB.Net类,该类将在VBA中用于读取文本文件。我已经对它进行了设置,以便用户可以指定要返回的文件中的哪些表。我所做的是构建一个表的StringBuilder,然后将其作为锯齿数组返回,但是我不能完全正确地将生成器转换为数组部分。我希望第一层在“换行符”上拆分,第二层在“,”上拆分 不必使用多个数组和\或循环,这是否可行?您可以使用嵌套列表和泛型来表示锯齿状数组。外部(行)是一个通用列表,内部(列)是一个字符串列表 其他方法可以利用XML或LINQ,但效率较低。这将创建锯齿状数
不必使用多个数组和\或循环,这是否可行?您可以使用嵌套列表和泛型来表示锯齿状数组。外部(行)是一个通用列表,内部(列)是一个字符串列表
其他方法可以利用XML或LINQ,但效率较低。这将创建锯齿状数组:
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()
- 然后我们在换行符上拆分:
。因为在窗口中换行符由两个字符组成,所以我们使用(因此使用大括号)split({vbCrLf},StringSplitOptions.None)
- 在行中,我们用逗号分隔行:
。split(“,”c)
指定这是一个字符而不是字符串c
- 最后,我们通过将
应用于外部和内部LINQ表达式,将此可枚举项转换为数组数组ToArray