首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >整数集合的集合

整数集合的集合
EN

Stack Overflow用户
提问于 2018-02-13 20:17:32
回答 1查看 256关注 0票数 0

我正在生成按从1到pmax的数字索引的gcard人员的临时组

问题是集合"persone“总是一样的……gruppi(i)为每个"i“引用相同的"persone”

我想在每个"gruppi(i)“中都有一个新的集合,我该怎么做呢?

代码语言:javascript
复制
Dim gruppi As New Collection
Dim persone As New Collection


gmax = -Int(-(pmax / gcard))

conta = 1

For g = 1 To gmax

    gruppi.Add persone

    'ciclo sulle persone del gruppo
    For p = 1 To gcard

        cas = Round(Rnd() * (pmax - 1) + 1, 0)

riprova:

        'check if cas was generated before
        For i = 1 To gruppi.Count

            For j = 1 To gruppi(i).Count
                If gruppi(i)(j) = cas Then
                    cas = Round(Rnd() * (pmax - 1) + 1, 0)
                    GoTo riprova
                End If
            Next

        Next

continua:

        'person "cas" not present, ok let's add it!
        gruppi(g).Add cas

        'MsgBox "gruppi -> " & gruppi.Count
        'MsgBox "persone nel gruppo " & g & " -> " & gruppi(g).Count

        conta = conta + 1
        If conta > pmax Then GoTo esci

    Next p

Next g

esci:
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-14 00:24:16

这是因为

代码语言:javascript
复制
Dim gruppi As New Collection
Dim persone As New Collection 

For g = 1 To gmax
    gruppi.Add persone
    ....

对于可能添加的每个gruppi项,您都会引用相同的persone对象...

然后你想要使用:

代码语言:javascript
复制
Dim gruppi As New Collection

For g = 1 To gmax
    gruppi.Add New Collection ' add a new collection as the new item of 'gruppi' collection
    ....

顺便说一句,它允许声明和使用较少的对象变量

由于最佳实践是声明和实例化

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48766682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档