namespace 키워드는 관련 개체 집합을 포함하는 범위를 선언하는 데 사용됩니다.
컬렉션
1. ArrayList [비선호, for문 O, 배열임] , 동적 배열이다.
using System;
using System.Collections;
namespace Game2048
{
public class App
{
//생성자
public App()
{
//None-Generic Collection Class
//네임스페이스 : System.Collections
//ArrayList : 동적 배열
//컬렉션 인스턴스화
ArrayList list = new ArrayList();
//요소를 추가한다
list.Add("홍길동");
list.Add(123);
list.Add(new Item());
int[] arr = { 1, 2, 3 };
list.Add(arr);
//요소를 가져온다
string name = (string)list[0];
int num = (int)list[1];
//순회
for(int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
foreach(object obj in list)
{
Console.WriteLine(obj);
}
}
}
}
2. Hashtable [비선호, for문 X, 배열이 아님]
using System;
using System.Collections;
namespace Game2048
{
public class App
{
//생성자
public App()
{
//Hashtable : 키/값 쌍으로 저장하는 컬렉션
//인스턴스화
Hashtable ht = new Hashtable();
//요소에 값을 넣기
ht.Add(100, "장검");
ht.Add(101, "단검"); //같은 키 안됨!
//순회
Console.WriteLine(ht.Count); //컬렉션의 요소의 수
foreach(DictionaryEntry entry in ht)
{
Console.WriteLine("{0},{1}", entry.Key, entry.Value);
}
//Key로 요소를 제거
ht.Remove(100);
Console.WriteLine(ht.Count);
foreach (DictionaryEntry entry in ht)
{
Console.WriteLine("{0},{1}", entry.Key, entry.Value);
}
//Hashtable로부터 키값으로 Value를 가져오는 방법
string itemName = ht[101].ToString();
Console.WriteLine(itemName);
ht.Clear(); //모든요소 지우기
Console.WriteLine("contains : {0}",ht.ContainsKey(100));
}
}
}
3.Queue [FiFO 선입선출]
using System;
using System.Collections;
namespace Game2048
{
public class App
{
//생성자
public App()
{
//Queue : FIFO (선입선출)
//인스턴스화
Queue q = new Queue();
//요소에 값을 할당
q.Enqueue("홍길동");
q.Enqueue(123);
//요소 꺼내기
string name = (string)q.Dequeue();
Console.WriteLine(name);
Console.WriteLine(q.Count); // 1
int num = (int)q.Peek();
Console.WriteLine(num);
Console.WriteLine(q.Count); //1
//순회
foreach(object obj in q) {
Console.WriteLine(obj);
}
}
}
}
4. Stack [LIFO 후입선출]
using System;
using System.Collections;
namespace Game2048
{
public class App
{
//생성자
public App()
{
//프링글스 : 마지막에 넣은 것을 가장 먼저 꺼낸다.
//인스턴스화
Stack stack = new Stack();
//넣기
stack.Push("홍길동");
stack.Push(123);
//빼기
int num = (int)stack.Pop(); //123꺼냄
Console.WriteLine(num); //123
Console.WriteLine(stack.Count); //1
string name = (string)stack.Peek();
Console.WriteLine(name);
Console.WriteLine(stack.Count); //1
//순회
foreach(object obj in stack)
{
Console.WriteLine(obj);
}
}
}
}
'C#프로그래밍' 카테고리의 다른 글
가짜 인벤토리 만들기 1단계 (0) | 2023.07.26 |
---|---|
컬렉션 [제네릭 - List<T>, Dictonary <TKey, TValue>, Queue<T>, Stack<T>] (0) | 2023.07.26 |
좌표, 인덱스, Utils, Vector2, Hero (0) | 2023.07.25 |
2048[미완] (0) | 2023.07.25 |
2차원 배열 (0) | 2023.07.25 |