본문 바로가기
프로그래밍 언어/C#

C# 배열, 리스트(List), 딕셔너리(Dictionary)

by fortissimo 2024. 6. 5.

배열


- 선언

  • 1차원 배열: 자료형[] 변수명;
  • 2차원 배열: 자료형[ , ] 변수명;

- 초기화

  • 1차원 배열: 변수명 = new 자료형[크기];
  • 2차원 배열: 변수명 = new 자료형[크기, 크기];
int[] arr1; //변수 선언만
int[] arr2 = new int[10]; //변수의 선언과 초기화(모두 0으로 초기화된다.)
int[] arr3 = new int[5]{1, 2, 3, 4, 5}; //변수의 선언과 초기화
//(중괄호 안의 숫자들로 초기화)

int[ , ] arr4; //2차원 배열의 변수 선언
arr4 = new int[10, 10]; // 10 * 10 크기의 2차원 배열로 초기화

 

-원소 참조

  • 1차원 배열: 변수명[int index]
  • 2차원 배열: 변수명[int index1, int index2]

 

리스트


-C++의 벡터와 같은 역할의 컬렉션으로, 크기가 가변적이다.

 

-선언

  • List<T> 변수명;

-초기화

  • 변수명 = new List<T>();
  • 변수명 = new List<T>() {원하는 요소 나열};
List<int> ls1; //리스트의 선언
List<string> ls2 = new List<string>(); //리스트 선언과 동시에 초기화
List<int> ls3 = new List<int>(){1, 2, 3}; //중괄호 안에 있는 요소들로 초기화

 

 

-멤버 함수

  • void Add(E element): 리스트에 element를 추가한다.
  • void Insert(int index, E elemet): 해당 index에 요소를 삽입한다. index 이상의 인덱스를 가진 요소들은 하나씩 뒤로 밀려난다.
  • bool Remove(E element): 리스트에서 element를 삭제한다. 제대로 삭제되었다면 true를, element가 없거나 삭제되지 못했다면 false를 반환한다.
  • void RemoveAt(int index): 해당 index의 요소를 삭제한다.
  • bool Contains(E element): 리스트에 element가 있는지 확인한다. 있다면 true를, 없다면 false를 반환한다.
  • int IndexOf(E element): 리스트에서 element를 찾아 가장 처음으로 찾는 요소의 index를 반환한다. element가 없다면 -1을 반환한다.
  • void Clear(): 리스트를 초기화한다.

 

딕셔너리(Dictionary)


- c++의 map과 같은 기능을 하며, <key, value>의 한 쌍의 데이터를 저장하는 컬렉션이다.

-해시 테이블로 구성되어 검색에 필요한 시간이 O(1)이다.

 

-선언

  • Dictionary<TKey, TValue> 변수명;

-초기화

  • 변수명 = new Dictionary<TKey, TValue>();
Dictionary<string, string> dictionary1; //<string, string> 타입을 갖는 딕셔너리 선언.
Dictionary<string, string> dictionary2 = new Dictionary<string, string>();
//<string, string> 타입을 갖는 딕셔너리의 선언과 동시에 초기화

 

-멤버 함수

  • void Add(TKey, TValue): 키와 값을 딕셔너리에 추가한다.
  • bool Remove(TKey): 키 값을 가진 값을 제거한다. 성공적으로 제거하면 true를, 아니라면 false를 반환한다.
  • bool Remove(TKey, TValue) : 키 값을 가진 값을 제거한다. TValue에는 제거된 값이 복사된다. 성공적으로 제거하면 true를, 아니라면 false를 반환한다.
  • bool ContainsKey(TKey): 키 값을 가진 값이 있는지 확인한다. 존재한다면 true를, 아니라면 false를 반환한다.
  • bool ContainsValue(TValue): 해당 값이 딕셔너리에 있는지 확인한다. 존재한다면 true를, 아니라면 false를 반환한다. 선형탐색을 진행하여 시간복잡도는 O(n)이다.
  • void Clear(): 모든 키와 값을 제거한다.