首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在将List<Packet>添加到List<List<Packet>>方面面临困难?

在将List<Packet>添加到List<List<Packet>>方面面临困难?
EN

Stack Overflow用户
提问于 2014-02-16 12:34:40
回答 1查看 58关注 0票数 0

在使用List<Packet>方法向List<List<Packet>>添加一个.Add时,我面临着问题。我使用的是嵌套的for循环,当它退出时,List<List<Packet>>的所有条目都填充了最后一个循环中的List<Packet>。它正在替换所有旧的值,我调试了代码并观察了这种情况的发生。正确的方法是什么?

这是我使用的代码:

代码语言:javascript
复制
static List<List<Packet>> generateRandomLists()
        {
            List<Packet> myList = getListOfItems();
            object syncLock = new object();
            int randomNo;

            List<List<Packet>> lists = new List<List<Packet>>();
            List<Packet> temp = new List<Packet>();
            const int SIZE = 10;
            for (int i = 0; i<SIZE ; i++)
            {
                temp.Clear();
                const int THRESHOLD = 48;
                for (int j = 0; getWeightOfBag(temp)<THRESHOLD; j++)
                {
                    lock(syncLock)
                    {
                        randomNo = rand1.Next(0, myList.Count);
                        Console.Write("{0}, ", randomNo);
                    }
                    temp.Add(myList[randomNo]);
                }
                Console.WriteLine();
                lists.Add(temp);
            }
            return lists;
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-16 12:36:57

您使用的是相同的temp实例,每次都要创建新实例:

而不是

代码语言:javascript
复制
temp.Clear();

代码语言:javascript
复制
List<Packet> temp = new List<Packet>();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21811164

复制
相关文章

相似问题

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