Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 공부
- 다중상속
- 그림자 효과
- C++
- 게임만들기
- 화살표 함수
- python
- c#
- visualstudio2022
- 배열문제
- 화살표 메서드
- premake5
- swipe
- IMGUI
- 유니티
- 이득우언리얼
- 파이썬
- 화살피하기
- Unity
- 이득우
- 언리얼
- uidesign
- 셰이더
- 표창던지기
- 렌더몽키
- rendermonkey
- 비주얼스튜디오
- 가변배열
- 3차원배열
- c++class
Archives
- Today
- Total
신입 개발자 공부 과정
Dictionary 본문
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;//추가해주고
using Newtonsoft.Json;//추가
namespace ConsoleApp
{
class App
{
Dictionary<int, ItemData> dicItemDatas = new Dictionary<int, ItemData>();
public App()
{
string json = File.ReadAllText("./item.data.json");//app 위치에 저장한 json 파일 경로 추가
Console.WriteLine(json);//파일 내용 출력
ItemData[] itemDatas = JsonConvert.DeserializeObject<ItemData[]>(json);//왜 아이템 배열이 들어갔을까? Json형식이 배열이여서
Console.WriteLine(itemDatas.Length);//3
foreach (ItemData itemData in itemDatas)
{
Console.WriteLine("{0}-{1}", itemData.id, itemData.name);
dicItemDatas.Add(itemData.id, itemData);
}
}
}
}
Dictionary
해시 테이블로 구현 되기 때문에
속도가 빠르다
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp
{
class App
{
public App()
{
Console.WriteLine("hello world \t");
Dictionary<int, string> dic = new Dictionary<int, string>();
dic.Add(100, "장검");
dic.Add(101, "단검");
dic.Add(102, "활");
Console.WriteLine(dic[101]);//선택적으로 출력
foreach(var weapon in dic)//foreach문을 사용하여 순회하며 사전내 모든 내용 출력
{
Console.WriteLine("{0}-{1}", weapon.Key, weapon.Value);
}
}
}
}
해시테이블
해시 테이블은 (Key, Value)로 데이터를 저장하는 자료구조 중 하나
해시 테이블이 빠른 검색속도를 제공하는 이유는 내부적으로 배열(버킷)을 사용하여 데이터를 저장하기 때문이다
SHA512를 통해 해시값을 찾을 수 있다
https://www.convertstring.com/ko/Hash/SHA512
링크드리스트/공부필요
O (1)
Json키, 값 쌍으로 이루어진 텍스트 를 사용하는 개방형 표준 포맷
기본 자료형의 수는 다음과 같이 표현된다. C나 자바에서의 8진수와 16진수를 표현하는 방법은 지원되지 않는다.
http://jsonviewer.stack.hu/위 링크에서 json 형식을 만들 수 있다
------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;//추가해주고
namespace ConsoleApp
{
class App
{
public App()
{
string json = File.ReadAllText("./item.data.json");//app 위치에 저장한 json 파일 경로 추가
Console.WriteLine(json);//파일 내용 출력
}
}
}
output=
도구->솔루션용 너겟 패키지에 가서 newtonsoft.Json을 선택하고 App파일을 선택 후 설치하면참조에 추가된다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;//추가해주고
using Newtonsoft.Json;//추가
namespace ConsoleApp
{
class App
{
Dictionary<int, ItemData> dicItemDatas = new Dictionary<int, ItemData>();
public App()
{
string json = File.ReadAllText("./item.data.json");//app 위치에 저장한 json 파일 경로 추가
Console.WriteLine(json);//파일 내용 출력
ItemData[] itemDatas = JsonConvert.DeserializeObject<ItemData[]>(json);//왜 아이템 배열이 들어갔을까? Json형식이 배열이여서
Console.WriteLine(itemDatas.Length);//3
foreach (ItemData itemData in itemDatas)
{
Console.WriteLine("{0}-{1}", itemData.id, itemData.name);
dicItemDatas.Add(itemData.id, itemData);
}
}
}
}
시리얼라이즈 연습
디시리얼라이즈 연습
연습지수표기법 공부
'C# > 수업 내용' 카테고리의 다른 글
1/10 - dictionary2 / 디자인 패턴(싱글톤) (0) | 2022.01.10 |
---|---|
01/06 과제 (0) | 2022.01.07 |
Delegate 대리자 2 + Lamda 람다 (0) | 2022.01.05 |
Delegate 대리자1 (0) | 2022.01.04 |
1월3일 인벤3 (0) | 2022.01.03 |