Словарь внутри структуры, как записать и получить значение - C#

Узнай цену своей работы

Формулировка задачи:

Есть структура и внутри нее есть словарь, как записать значение в этот словарь и потом прочитать это значение? Ниже код, но он не работает , помогите его поправить. После работы программы выводит:

0 1,111 В экземпляре объекта не задана ссылка на объект.

using System;
using System.Collections.Generic;
 
namespace StructAndDictionary
{
   public struct MyStruct // моя структура 
    {
        public Dictionary<double, long> MyDic;
        public double test;                     
    }
 
    class mainProgram 
    { 
        static int Main()
        {
            try
            {
 
                MyStruct one = new MyStruct(); 
                
                Console.WriteLine(one.test); // выводит 0
                one.test += 1.111; 
                Console.WriteLine(one.test); // выводит 1.111
 
                double MyKey    = 1.1;
                long   MyValue  = 100;
 
                one.MyDic.Add(MyKey, MyValue); // тут ошибка
 
                Console.WriteLine(one.MyDic[MyKey]);
 
            }
            catch (Exception en)
            {
                Console.WriteLine(en.Message);
            }
 
            return 0; 
        } 
    } 
}

Решение задачи: «Словарь внутри структуры, как записать и получить значение»

textual
Листинг программы
using System;
using System.Collections.Generic;
 
namespace StructAndDictionary
{
   public  struct MyStruct // моя структура 
    {
        public Dictionary<double, long> MyDic;
        public double test; 
 
        public MyStruct(int k)
        {
            MyDic = new Dictionary<double, long>();
            test  = 0;
        }
        
 
    }
 
    class mainProgram 
    { 
        static int Main()
        {
            try
            {
 
                MyStruct one = new MyStruct(1); 
                
                Console.WriteLine(one.test); // выводит 0
                one.test += 1.111; 
                Console.WriteLine(one.test); // выводит 1.111
 
                double MyKey    = 1.1;
                long   MyValue  = 100;
 
                one.MyDic.Add(MyKey, MyValue); // запись данных
                one.MyDic.Add(1.2, 200);       // запись данных
 
                Console.WriteLine(one.MyDic[MyKey]);
                Console.WriteLine(one.MyDic[1.2]);
 
            }
            catch (Exception en)
            {
                Console.WriteLine(en.Message);
            }
 
            return 0; 
        } 
    } 
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы