1

我正在构建一个用匹配填充包的小应用程序,在第一个函数中我设置包的数量,在第二个函数中我“插入”匹配包的数量。当我尝试运行它时,它一直告诉我“已经添加了具有相同密钥的项目。”,为什么会这样以及如何修复它?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Drill
{
    public class NewMatchesGame2
    {
        Dictionary<int, int> dictionaryPack = new Dictionary<int, int>();

        public void manageGame()
        {
            Console.WriteLine("how many packs? : ");
            string p = Console.ReadLine();
            int packs = Convert.ToInt32(p);


            for (int i = 0; i < packs; i++)
            {
                dictionaryPack.Add(i, 0);
            }

            InitializeGame();
        }

        public void InitializeGame()
        {
            string s = dictionaryPack.Count.ToString();
            int Pa = Convert.ToInt32(s);
            int minPack = Pa / Pa;
            int dmin = minPack;

            while (Pa > minPack)
            {

                Console.Write("how many matches in pack number :" + minPack + " : ");
                string a = Console.ReadLine();
                int matchNumber = Convert.ToInt32(a);
                int val = matchNumber;

                for (int x = 0; x < minPack; x++)
                {
                    dictionaryPack.Add(minPack , matchNumber);
                }
                minPack++;

                /// Print(matchNumber);
                /// computerPlay(matchNumber);
            }

        }
    }
}
4

1 回答 1

0

在您的函数manageGameInitialize中,您使用相同dictionaryPack的 .

并且当您插入时dictionaryPack.Add("KEY","VALUE"),密钥应该是唯一的。显然你没有使用唯一值。

您正在尝试更新包。但改用 Add 方法!!

于 2013-01-07T13:12:30.270 回答