获取循环上的数组值

时间:2016-06-16 09:28:51

标签: arrays vb.net

基于How can I declare a two dimensional string array?我已经创建了自己的数组,但我正在努力检索这些值。

我收到一个语法错误,该错误似乎与第二行(0)(0) = (((1) / total) * (100 - (vPercentChanger)))有关,但错误可能发生在上面的行上(请参阅下面的代码)。

错误:语法错误。 的代码:

  'Test values
Dim highPer As Double = 5
Dim high As Double = 10
Dim medPer As Double = 15
Dim medium As Double = 20
Dim lowPer As Double = 1
Dim low As Double = 2
Dim naPer As Double = 3
Dim na As Double = 4

Dim array1 As Double(,) = New Double(3, 1) {{highPer, high}, {medPer, medium}, {lowPer, low}, {naPer, na}}

Dim tmpList As New List(Of Double)
For i As Integer = 0 To array1.Rank - 1
If (0) > 5 + vPercentChanger Then
                (0) = (((1) / total) * (100 - (vPercentChanger)))     
End If

Next

补充说明:

我尝试过array1(0)和tmpList(0),但都创建了错误。我相信我很亲密。我已经尝试过C#到VB转换器,但这并不能解决这个问题。

1 个答案:

答案 0 :(得分:0)

如上所述,代码存在一些问题。

我们已将array1声明为一个数组,其中包含3行,每行包含1个条目,但给定数据为4行,每行包含2个条目。

我担心我无法将值理解为字符串...... 注意。除非highPerhigh等。是变量名,它们需要在它们周围加上引号。如果它们是变量名,那么变量应该包含在示例中以满足Minimal, Complete, Verifiable example标准。

您已经尝试了array1(0)tmpList(0) - 您想要实现的目标是什么?

array1是一个2D数组,所以我们需要用2个索引来解决它,例如array1(0,0)

tmpListarray1都包含字符串,将值与数字进行比较或将数字分配到它们中似乎是错误的( VB 执行某种隐式转换?你确定吗?你想使用字符串,也许它们应该是数组/数字列表?

更新:

从评论中看,我们有一个表示对列表的数组

{valPct, val}

我们希望迭代它们并检查

 if valPct > (5 + vtPercentChanger) then
     valPct = (val / total) * (100 - vPercentChanger)

我们可以用

来做到这一点
dim values as double(,) = {{v1Pct, v1}, {v2Pct, v2}, {v3Pct, v3}}

for index as integer = 0 to values.GetUpperBound(1) -1
    if (values(index,0) > (5 + vtPercentChanger)) then
        values(index,0) = (values(index,1) / total) * (100 - vPercentChanger)
next

不幸的是,没有代码检查 - 在公共汽车上使用电话 - 但是应该给出一般的形状。