본문 바로가기
C#/수업내용

[ C# 11일차 ] 변하지 않는 데이터 만들기 연습1

by 왹져박사 2023. 1. 13.
728x90

1. 배열

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System.IO;


namespace Cookierun
{
    class App
    {
        //생성자
        public App()
        {
            Console.WriteLine("App");

            string json = File.ReadAllText("./item_data.json");
            ItemData[] itemDatas = JsonConvert.DeserializeObject<ItemData[]>(json);
            foreach(ItemData data in itemDatas)
            {
                Console.WriteLine("{0}, {1}, {2}", data.id, data.name, data.price);
            }
            Console.WriteLine();

            //특정 아이템 검색
            int searchId = 3;
            ItemData foundData = null;

            foreach (ItemData data in itemDatas)
            {
                if(data.id == searchId)
                {
                    foundData = data;
                    break;
                }
            }
            Console.WriteLine("찾는중...");

            if (foundData!=null)
            {
                Console.WriteLine("{0} 아이템 찾음", foundData.name);
                Console.WriteLine("{0}, {1}, {2}", foundData.id, foundData.name, foundData.price);
            }
            else
            {
                Console.WriteLine("아이템이 없습니다. ");
            }
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Cookierun
{
    class ItemData
    {
        public int id;
        public string name;
        public int price;

    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Cookierun
{
    class Program
    {
        static void Main(string[] args)
        {
            new App();
        }
    }
}

 

2. Dictionary

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System.IO;


namespace Cookierun
{
    class App
    {
        //생성자
        public App()
        {
            Console.WriteLine("App");

            string json = File.ReadAllText("./item_data.json");
            ItemData[] itemDatas = JsonConvert.DeserializeObject<ItemData[]>(json);

            Dictionary<int, ItemData> dicItemDatas = new Dictionary<int, ItemData>();
            foreach(ItemData data in itemDatas)
            {
                dicItemDatas.Add(data.id, data);
            }

            foreach(KeyValuePair<int, ItemData> pair in dicItemDatas)
            {
                int id = pair.Key;
                ItemData data = pair.Value;

                Console.WriteLine("{0}{1}{2}", data.id, data.name, data.price);
            }
            Console.WriteLine();

            int searchId = 4;
            if (dicItemDatas.ContainsKey(searchId))
            {
                Console.WriteLine("찾는중...");
                ItemData foundItemData = dicItemDatas[searchId];
                Console.WriteLine("{0}, {1}, {2}", foundItemData.id, foundItemData.name, foundItemData.price);
            }
            else
            {
                Console.WriteLine("키를 찾을 수 없습니다. ");
            }


        }
    }
}

728x90