Arrays 在for-each循环中使用两个数组

Arrays 在for-each循环中使用两个数组,arrays,vb.net,Arrays,Vb.net,我有一段代码,它使用vb.net将数据插入到两个不同的数组中: salesman_product(salesman_product_counter) = reader2.GetString(0) salesman_product_amount(salesman_product_counter) = "£" + Val(reader2.GetString(1)).ToString("F2") saller\u product\u counter是一个每次都有+1的数字(数组在while循环中)

我有一段代码,它使用vb.net将数据插入到两个不同的数组中:

salesman_product(salesman_product_counter) = reader2.GetString(0)
salesman_product_amount(salesman_product_counter) = "£" + Val(reader2.GetString(1)).ToString("F2")
saller\u product\u counter
是一个每次都有+1的数字(数组在while循环中)

创建数组工作正常,如何循环两个数组以获取数据

我试过:

For Each salesman_product2 In salesman_product and salesman_product_amount2 in salesman_product_amount
Salesman_xlWorkSheet.Cells(salesman_product2, 1) = company_name 'client name
Salesman_xlWorkSheet.Cells(salesman_product2, 2) = customer_account 'client account
Salesman_xlWorkSheet.Cells(salesman_product2, 3) = salesman_product2 'product
Salesman_xlWorkSheet.Cells(salesman_product2, 4) = reader4.GetString(0) 'commission percentage
Salesman_xlWorkSheet.Cells(salesman_product2, 5) = Lines_International_Calls * (reader4.GetString(0) / 100) 'commission amount
Next
但你不能使用和


我需要能够在循环中看到来自两个数组的数据

您必须循环索引

For index As Integer = 0 To salesman_product.Count-1
    salesman_product2 = salesman_product(index)
    salesman_product_amount2 = salesman_product_amount(index)
    Salesman_xlWorkSheet.Cells(salesman_product2, 1) = company_name 'client name
    Salesman_xlWorkSheet.Cells(salesman_product2, 2) = customer_account 'client account
    Salesman_xlWorkSheet.Cells(salesman_product2, 3) = salesman_product2 'product
    Salesman_xlWorkSheet.Cells(salesman_product2, 4) = reader4.GetString(0) 'commission percentage
    Salesman_xlWorkSheet.Cells(salesman_product2, 5) = Lines_International_Calls * (reader4.GetString(0) / 100) 'commission amount
Next
但正确的方法不是创建2个数组,而是创建一个类列表

您需要为销售人员信息创建一个类

Class SalesmanProduct
    Public Property Name As String
    Public Property Amount As String
End Class
将产品添加到列表中

Dim salesmanProducts As New List(Of SalesmanProduct)

' ...

Dim newProduct As New SalesmanProduct

newProduct.Name = reader2.GetString(0)
newProduct.Amount = "£" + Val(reader2.GetString(1))

salesmanProducts.Add(newProduct)
然后你可以为每个人列出清单


我可以说,将金额作为字符串存储在数据库中是一个坏主意,但这与这个问题无关。

将indx=0用于saller\u Product.GetUpperBound(0)而不是用于每个?如果有办法保存相关信息,如
saller
Product
For Each product As SalesmanProduct In salesmanProducts
    ' product.Name
    ' product.Amount
Next