我正在编写一个循环来遍历2D循环的第一个数组,我现在有这样的:
For Each Dir_path In MasterIndex(,0) 'do some stuff here Next
但它给了我一个错误,说它希望在第一个字段中有一个表达式.但这就是我想要做的,循环通过第一个字段.我该如何解决?我会在那里放什么?
编辑:澄清一下,我特意在每个数组的子数组中寻找第0个元素,这就是第二个字段始终为0的原因.
您可以使用嵌套的For循环来完成此操作
注意:使用For Each循环迭代数组中的元素时,每次迭代生成的占位符都是实际数组中值的副本.对该值的更改不会反映在原始数组中.如果您想要执行除读取信息之外的任何操作,则需要使用For循环直接寻址数组元素.
假设二维数组,以下代码示例将为每个维度中的每个元素分配一个值.
Dim MasterIndex(5,2) As String For IoUter As Integer = MasterIndex.GetLowerBound(0) To MasterIndex.GetUpperBound(0) 'IoUter represents the first dimension For iInner As Integer = MasterIndex.GetLowerBound(1) To MasterIndex.GetUpperBound(1) 'iInner represents the second dimension MasterIndex(IoUter,iInner) = "This Isn't nothing" 'Set the value Next 'iInner 'If you are only interested in the first element you don't need the inner loop MasterIndex(IoUter,0) = "This is the first element in the second dimension" Next 'IoUter 'MasterIndex is Now filled completely
您可以选择使用.Rank属性动态迭代每个维度
如果你想循环一个锯齿状的数组,就像Konrad Rudolph所建议的那样(这在函数上更接近地匹配其他更松散类型的语言,如PHP的数组实现),你可以像这样:
'This is a jagged array (array of arrays) populated with three arrays each with three elements Dim Jaggedindex()() As String = { New String() {"1","2","3"},New String() {"1","3"} } For Each aOuter As String() In Jaggedindex 'If you are only interested in the first element you don't need the inner for each loop Dim sDesiredValue As String = aOuter(0) 'This is the first element in the inner array (second dimension) For Each sElement As String In aOuter Dim sCatch As String = sElement 'Assign the value of each element in the inner array to sCatch sElement = "This Won't Stick" 'This will only hold value within the context of this loop iteration Next 'sElement Next 'aOuter 'Jaggedindex is still the same as when it was declared
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。