迭代我很惊讶(和恐惧),下面的代码在Vb.Net工作〜2-d阵列中VB.Net
Dim test2DArr As String(,) = {{"A", "B"}, {"C", "D"}}
For Each s As String In test2DArr
MsgBox(s)
Next
当运行时,四个消息框弹出显示“A”,“ B“,”C“,然后是”D“。
换句话说,它具有完全相同的行为:
Dim test1DArr As String() = {"A", "B", "C", "D"}
For Each s As String In test1DArr
MsgBox(s)
Next
有人能解释一下这个“功能”?我需要在这里强加一些显然不被支持的结构。以上第一个代码示例应是:
Dim test2DArr As String(,) = {{"A", "B"}, {"C", "D"}}
For Each arr As String(,) In test2DArr
MsgBox(arr(0) & ", " & arr(1))
Next
和应产生两个消息框:“A,B”和“C,d”,但是编译器坚持认为通过2 d阵列迭代产生一个字符串序列,而不是字符串数组序列。
我做错了什么或者是.Net的二维数组的实现真的很脆弱吗?
+1这对我来说绝对是迷人的。如果其他读者想要亲自体验它,我会在这里设置这种情况(http://rextester.com/rundotnet?code=SSBCAH17268)。 – ckittel