Arrays 在for-each循环中使用两个数组
我有一段代码,它使用vb.net将数据插入到两个不同的数组中: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循环中)
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