我正在尝试制作一个多维关联数组。我想要它所以我可以有类似的东西:
someVar(日期)(小时)(类别)= mssql查询
我正在使用以下内容进行尝试和准备,但在向阵列添加数据时遇到了问题。
Dim test As New Dictionary(Of Integer, Dictionary(Of String, String))
Dim test2 As New Dictionary(Of String, String)
非常感谢任何帮助。
- - - - 编辑: 这是我正在使用的,它按预期工作。 Doe ayone明白为什么这会是一个不好的方法呢?
Dim test As New Dictionary(Of Integer, Dictionary(Of String, String))
Dim SomeNum As Integer = 0
Dim someStr As String = "This is a string: "
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
While SomeNum < 100
Dim someNum2 As Integer = 0
Dim test2 As New Dictionary(Of String, String)
While someNum2 < 100
test2.Add(CType(someNum2, String), someStr & CType(someNum2, String))
someNum2 += 1
End While
test.Add(SomeNum, test2)
SomeNum += 1
End While
For Each kvp As KeyValuePair(Of Integer, Dictionary(Of String, String)) In test
Dim ccc As String = ""
Dim ddd As String = ""
Dim v1 As String = CType(kvp.Key, String)
Dim v2 As Dictionary(Of String, String) = kvp.Value
lblOne.Items.Add("Key: " & v1)
For Each kvp2 As KeyValuePair(Of String, String) In v2
Dim v3 As String = kvp2.Key
Dim v4 As String = kvp2.Value
lblTwo.Items.Add("SubKey: " & v3 & " Value: " & v4)
lblOne.Items.Add("")
Next
lblOne.Items.Add(v1 & " End--------------")
lblTwo.Items.Add(v1 & " End--------------")
Next
End Sub
答案 0 :(得分:1)
创建一个具有“Date”,“HourlySales”,“Category”属性的类。
Public Class Sales
Public Property SalesDate() As Date
Public Property HourlySales() As Decimal
Public Property Category() As String
Public Sub New()
End Sub
Public Sub New(vSalesDate As Date, vHourlySales As Decimal, vCategory As String)
SalesDate = vSalesDate
HourlySales = vHourlySales
Category = vCategory
End Sub
End Class
创建Sales
Shared Function GetSales() As List(Of Sales)
Dim SalesList As New List(Of Sales)
Using connection As New SqlConnection(YourConnectionString)
Dim cmd As SqlCommand = New SqlCommand("SelectSalesList", connection)
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection.Open()
Dim reader As SqlDataReader = cmd.ExecuteReader()
While reader.Read
SalesList.Add(New Sales(reader("SalesDate"), reader("HourlySales"), reader("Category")))
End While
End Using
Return SalesList
End Function
您可以调用GetSales()
函数返回Sales
列表。
答案 1 :(得分:0)
答案 2 :(得分:0)
词典词典是一个维护噩梦,需要查询和调试。
我建议使用复合键,所以不要进行3次查找,而只需要为日期+小时+类别的字符串执行一次查找。例如,date = Monday,hour = 9PM,category = Apples,你的键是Monday:9PM:Apples
(我选择冒号作为部件分隔符,但你可以选择不同的字符)。