Unity3d C# toolba 사용해보기

C#의 HashTable, indexer를 알아보겠습니다.

안녕하세요 메르세데스입니다. 이번시간에는 C#에서의  HashTable, Indexer를 알아보겠습니다.
이것도 역시 컬렉션중에 하나죠.. 지난시간에 했었던..stack,queue처럼 말이죠..
이름이... 무슨.. 알고리즘비슷한것 같네요..  

1.Hashtable

 빠르게 탐색이 가능한 특징이 있습니다. 또한 어떠한 형식으로도 키를 지정할 수 있는 특징이 있습니다
예를들어..
hash[1] = "test";
hash["asdf"] = "aaa";
이런 표현이 가능하다는거죠..

탐색이 상당히 빠르다고하니.. 한번 써보시는것도 좋겠네요..

C# HashTable


2.Indexer

이것은 인덱스를 이용해서 객체내의 데이터를 접근하게하는것입니다.   전시간에 프로퍼티를 배웠었는데 그것과 비슷하다고하네요

프로퍼티를 사용할때는..  

get{...} set{...} 이런식으로 했었던기억이 나는데요..

식별자에 index라는 형식을 넣어서 하는것이 다릅니다.


C# Indexer


예제를 만들어서 한번 돌려봤습니다.
이것도 마찬가지로 System.Collections를 추가해주셔야하겠죠..

C# Indexer

클래스를 만들어서.. public int this[int index] 이렇게 인덱서를 만들어 넣어놓고요..
public int Length 로..또한 만들어 놨습니다.. 프로퍼티같네요.. 

그래서 메인클래스/메소드부분에서..  list객체를 생성하면서.. 마치 배열처럼 값을 넣었네요.. 위에서 그렇게 선언했기때문에 가능하겠죠..

또한.. 출력부분에서 public int Length로 만들어놓은것을 길이체크하는것으로 지정했네요.. 배열의 길이체크하는 것처럼..  MyList에서 프로퍼티로 만들어놓았네요.. 그래서 길이만큼 루프를 돌려서  list[i]으로 배열처럼 값을 얻어 옵니다. get { return array[index];}  얻어오는부분을 이렇게 선언했기 때문에 가능하겠죠.. 

근데 제가봤을때는.. 그냥 배열을 쓰는게 낫지 않을까하네요.. ^^; 복잡합니다


이상으로 C#의 HashTable, indexer를 알아봤습니다. 감사합니다.








댓글