-1

我试图访问在 VB.net 中具有以下名称的一些变量的值:

<%@ Page Language="VB"%>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<%@ import Namespace="System.Collections.Generic" %>

<%
dim foo1 = "some value1"
dim foo2 = "some value2"
dim foo3 = "some value3"

'DO some stuff

%>

在 php 中,我可以在这样的循环中访问此类变量:

$foo1 ="some value1".<br/>
$foo2 ="some value2".<br/>
$foo3 ="some value3".<br/>

for($i=1;$i<=3;$i++){
   echo ${"foo".$i}
}

这将呼应如下内容:

some value1 
some value2 
some value3

我怎样才能在 VB.net 中做同样的事情?

基本上,这是我想做的:

我有一个用 html 和 jquery 编写的网络表单,它使用 VB.net 4 连接器 (connector.aspx) 通过 ajax 从表单中接收数据并将数据插入数据库。

该表格可以一次最多注册 20 名参与者。

连接器必须准备好接收多达 400 个值,但并非一直都在接收。

因此,在连接器的代码中,我使用这种技术来交换 Dim,查看谁收到了值或谁是空的。

4

4 回答 4

0

为什么不尝试使用字典?只需创建一个字典并将您需要的任何数据放入其中。您可以通过传入第一个参数 Key 来访问它,这将返回与该键一起存储的值。

    Dim dict As New Dictionary(Of Integer, String)
    dict.Add(1, "some value1")
    dict.Add(2, "some value2")
    dict.Add(3, "some value3")

    For i As Integer = 1 To 3 Step 1
        If dict.ContainsKey(i) Then
            Dim result As String = dict(i)
            'Do whatever with result
            Debug.Print(result)
        End If
    Next

1 返回“一些值1”

2 返回“一些值2”

3 返回“一些值3”

于 2013-11-12T21:01:40.047 回答
0

这就是我最后所做的,基于@Gavin Perkins、@Mike Monge 和@varocarbas 评论的答案。

Dim foo(3)

foo(1) = "some value1"
foo(2) = "some value2"
foo(3) = "some value3"

For i=1 to 3
    Response.Write(foo(i))
next

我从这个页面中获取示例:

http://p2p.wrox.com/classic-asp-basics/72328-dynamic-variable-names.html

您需要以某种方式将值和名称(键等)放在值集合(数组、列表、字典等)上,就像@Gavin_Perkins 和@Mike Monge 的答案以及@varocarbas 评论一样;并循环通过集合,而不是直接通过变量的名称。

如果您不使用 ASP-classic 和 VBScript,则无法像 php 示例中那样完成,就像@Martha 回答的那样。

于 2013-11-13T21:33:40.130 回答
0

您可以使用“For Each”循环。您需要先将值添加到集合中。一旦您将所有字符串变量都放在集合中,您的循环将如下所示。

For Each tempstring as string in mycollection

    Messagebox.show(tempstring)

Next

注意: tempstring 是在创建“For Each”循环时声明的变量。它代表您正在循环的当前字符串。在此示例中,tempstring 在第一次传递时为“some value1”,在第二次传递时为“some value2”,依此类推。

在这种情况下,输出将是 3 个带有每个字符串值的消息框。

于 2013-11-12T19:01:57.340 回答
0

假设您实际上正在使用 ASP-classic 和 VBScript 1,您可以使用 Eval() 来执行此操作。

dim foo1, foo2, foo3
dim i, j
foo1 = "blah blah blah"
foo2 = "blibbety"
foo3 = "alohomora"
for i = 1 to 3
    j = "foo" & i
    response.write Eval(j) & "<br>"
next

(添加到字典也可以,但是开销要高得多。)

1dim foo = "blah"您使用的语法在 VBScript 中无效,并且您一直在接受显然不是用 VBScript 编写的答案,所以我不知道您实际使用的是哪种语言。

于 2013-11-13T15:50:04.347 回答