Vb.net 嵌套列表/列表集合

Vb.net 嵌套列表/列表集合,vb.net,Vb.net,我正在创建一个管理抽奖系统的Discord机器人。我需要机器人能够动态创建抽奖条目列表,因为抽奖是在我的抽奖类中创建的(每个抽奖1个列表)。我可以用一个二维数组来处理这个问题,因为到目前为止,我已经使用了列表来处理所有其他事情,我喜欢它们的易用性。在VB.net中使用列表来完成此任务的最佳方法是什么?到目前为止,我在互联网上看到的嵌套列表示例有点难以理解 Private RaffleIDList As New List(Of Integer) Private RaffleName

我正在创建一个管理抽奖系统的Discord机器人。我需要机器人能够动态创建抽奖条目列表,因为抽奖是在我的抽奖类中创建的(每个抽奖1个列表)。我可以用一个二维数组来处理这个问题,因为到目前为止,我已经使用了列表来处理所有其他事情,我喜欢它们的易用性。在VB.net中使用列表来完成此任务的最佳方法是什么?到目前为止,我在互联网上看到的嵌套列表示例有点难以理解

    Private RaffleIDList As New List(Of Integer)
    Private RaffleNameList As New List(Of String)
    Private RaffleCountdownList As New List(Of Integer)
    Private RaffleMinimumEntriesList As New List(Of Integer)
    Private RaffleRewardTitleList As New List(Of String)
    Private RaffleRewardLinkList As New List(Of String)
    Private RaffleGoLiveList As New List(Of DateTime)

    'TODO: Improve Entry storage to allow lists for each Raffle
    Private RaffleEntries As New List(Of Discord.IUser)

    Function addRaffle(ByVal RaffleName As String, ByVal RaffleCountdown As Integer, ByVal RaffleMinimumEntries As Integer, ByVal RaffleRewardTitle As String, ByVal RaffleRewardLink As String, ByVal RaffleGoLive As DateTime) As Integer

        'Ensure all required perameters are provided and valid
        If RaffleName <> Nothing Then
            'Return RaffleID if creation is succesful

            Dim newId As Integer = getNewRaffleID()

            'Add Raffle
            RaffleIDList.Add(newId)
            RaffleNameList.Add(RaffleName)
            RaffleCountdownList.Add(RaffleCountdown)
            RaffleMinimumEntriesList.Add(RaffleMinimumEntries)
            RaffleRewardTitleList.Add(RaffleRewardTitle)
            RaffleRewardLinkList.Add(RaffleRewardLink)
            RaffleGoLiveList.Add(RaffleGoLive)

            Return newId

        End If

        'Return failure if not passed above.
        Return -1
    End Function
Private RaffleIDList作为新列表(整数)
私有RaffleNameList作为新列表(字符串)
私有RaffleCountdownList作为新列表(整数)
私有RaffleMinimumEntriesList作为新列表(整数)
Private RaffleRewardTitleList作为新列表(字符串)
私有RaffleRewardLinkList作为新列表(字符串)
私有列表作为新列表(日期时间)
'待办事项:改进条目存储,以便为每次抽奖提供列表
私人抽奖进入新名单(Discord.IUser)
函数addRaffle(ByVal RaffleName为字符串,ByVal RaffleCountdown为整数,ByVal RaffleMinimumEntries为整数,ByVal RaffleNewTitle为字符串,ByVal RaffleWardLink为字符串,ByVal RaffleGoLive为日期时间)为整数
“确保提供了所有必需的参数表,且其有效
如果你什么都不知道
'如果创建成功,则返回RaffleID
Dim newId为整数=getNewRaffleID()
“添加抽奖
RaffleIDList.Add(newId)
RaffleNameList.Add(RaffleName)
RaffleCountdownList.Add(RaffleCountdown)
RaffleMinimumEntriesList.Add(RaffleMinimumEntries)
RaffleRewardTitleList.Add(RaffleRewardTitle)
RaffleRewardLinkList.Add(RaffleRewardLink)
RaffleGoLive列表。添加(RaffleGoLive)
返回新ID
如果结束
'如果以上未通过,则返回失败。
返回-1
端函数

提供的代码位于my Raffle类中,显示了我的Raffle变量和addRAffle()函数。目前,我只声明一个列表(RaffleEntries)来保存条目(Discord.Iuser),但我真正需要的是能够为每个活动的抽奖活动创建一个单独的条目列表。

您似乎已经做错了。您不应该拥有所有这些单独的列表,而应该拥有一个自定义类型的列表。您应该定义一个
Raffle
类,它将具有
ID
Name
倒计时
,…,以及
GoLive
属性。它还有一个
条目
属性,类型为
列表(Discord.IUser)
。每次创建一个
Raffle
对象时,它已经包含内部列表,并且可以通过该属性访问该列表

例如

和示例用法:

Dim raffles As New List(Of Raffle)
Dim r As New Raffle With {.Id = 1,
                          .Name = "First",
                          .GoLive = Date.Today}

r.Entries.Add(entry1)
raffles.Add(r)

这是你的整个抽奖课吗?我已经读了大约10遍,对我来说(假设这是你的班级),莱佛士是莱佛士的财产。如果是这样的话,你已经回答了你自己的问题事实上,我应该这样设置它。谢谢你的帮助!
Dim raffles As New List(Of Raffle)
Dim r As New Raffle With {.Id = 1,
                          .Name = "First",
                          .GoLive = Date.Today}

r.Entries.Add(entry1)
raffles.Add(r)