1

最初の関数でパックの数を設定し、2 番目の関数でマッチの数をパックに「挿入」します。実行しようとすると、「同じキーを持つアイテムが既に追加されています。」と表示されるのはなぜですか?また、どのように修正すればよいですか?

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 に答える