基于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转换器,但这并不能解决这个问题。
答案 0 :(得分:0)
如上所述,代码存在一些问题。
我们已将array1
声明为一个数组,其中包含3行,每行包含1个条目,但给定数据为4行,每行包含2个条目。
我担心我无法将值理解为字符串...... 注意。除非highPer
,high
等。是变量名,它们需要在它们周围加上引号。如果它们是变量名,那么变量应该包含在示例中以满足Minimal, Complete, Verifiable example标准。
您已经尝试了array1(0)
和tmpList(0)
- 您想要实现的目标是什么?
array1
是一个2D数组,所以我们需要用2个索引来解决它,例如array1(0,0)
。
tmpList
和array1
都包含字符串,将值与数字进行比较或将数字分配到它们中似乎是错误的( 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
不幸的是,没有代码检查 - 在公共汽车上使用电话 - 但是应该给出一般的形状。