List和clear方法存在问题:

本文关键字:问题 存在 方法 clear List | 更新日期: 2023-09-27 17:59:10

Dictionary<string, List<DisplayAllQuestionsTable>> tPages= new Dictionary<string, List<DisplayAllQuestionsTable>>();;
List<DisplayAllQuestionsTable> threadsByTopic = new List<DisplayAllQuestionsTable>();
int tPage=0;
        foreach (var topicKeys in postsByTopic)
        {
               if (topicKeys.Key == subTopic)
                {
                    foreach (var item in postsByTopic[topicKeys.Key])
                    {
                        questionNumber++;
                        maximumTopicPages++;
                        threadsByTopic.Add(item);//Adds All DisplayAllTables objects
                        //if there are 20 add a button.
                        if (maximumTopicPages == 20)
                        {
                            tPages.Add(tPage.ToString(), threadsByTopic);//The threadsByTopic clears everytime i call threadsByTopic.clear()
                            threadsByTopic.Clear();
                            tPage++;
                    }
                }

我知道,如果它是一个引用,那么它的引用是通过值传递的。但是如果我把threadByTopic列表添加到字典中。。它不是按原样保存的吗。。。?还是必须重置?

List和clear方法存在问题:

实例被添加到字典中,但它仍然是相同的列表,所以当你使用clear时,u正在清除你刚刚添加的列表。U应该使用clear创建新的列表对象。