본문 바로가기
NOTE/Programming

[C#] 컬렉션

by DevAthena 2018. 4. 1.

참고 : http://blog.eairship.kr/150 ( 누구나가 다 이해할 수 있는 프로그래밍 첫걸음 블로그 )

https://msdn.microsoft.com/ko-kr/library/system.collections.arraylist(v=vs.80).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1



컬렉션 : 배열 리스트(ArrayList) , 해시 테이블(Hash table), 큐(Queue), 스택(Stack) 등



ArrayList 클래스

- 네임 스페이스 : System.Collections

- 크기가 필요에 따라 동적으로 증가되는 배열을 사용하여 IList 인터페이스를 구현합니다.

- 정렬되어있지 않을 수 있으므로, BinarySearch 와 같은 작업을 수행하기 전에는 정렬해야 합니다.

- 정수 인덱스를 사용하여 값에 접근할 수 있습니다. ( 0 부터 시작 )

- Null 참조를 유효한 값으로 받아들이며 중복 요소를 허용합니다.

- Add, BinarySearch, Clear, Contain, Insert, Remove, Sort.. 등의 메소드 존재


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
31
32
33
34
35
36
37
38
39
using System;
using System.Collections;
public class SamplesArrayList  {
 
   public static void Main()  {
 
      // Creates and initializes a new ArrayList.
      ArrayList myAL = new ArrayList();
      myAL.Add("Hello");
      myAL.Add("World");
      myAL.Add("!");
 
      // Displays the properties and values of the ArrayList.
      Console.WriteLine"myAL" );
      Console.WriteLine"    Count:    {0}", myAL.Count );
      Console.WriteLine"    Capacity: {0}", myAL.Capacity );
      Console.Write"    Values:" );
      PrintValues( myAL );
   }
 
   public static void PrintValues( IEnumerable myList )  {
      foreach ( Object obj in myList )
         Console.Write"   {0}", obj );
      Console.WriteLine();
   }
 
}
 
 
/* 
This code produces output similar to the following:
myAL
    Count:    3
    Capacity: f
    Values:   Hello   World   !
*/
 
cs





해시 테이블(Hashtable)

- 키와 값을 가진 요소를 다루는 사전 구조

- 빠른 검색이 가능, 사용이 편리

- foreach문은 컬렉션에 있는 각 요소의 형식(DictionaryEntry)을 필요. ( 읽기만 가능 )

1
foreach (DictionaryEntry de in myHashtable) {...}
cs


 

- Add, Clear, Contains, CopyTo, Remove, GetHash .. 등의 메소드 존재


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication36
{
    class Program
    {
        static void Main(string[] args)
        {
            Hashtable table = new Hashtable();
 
            table.Add("사과""apple");
            table.Add("토마토""tomato");
            table["감자"= "potato";
 
            foreach (object obj in table.Keys)
                Console.WriteLine("{0}: {1}", obj, table[obj]);
        }
    }
}
cs


결과 : 감자: potato

 사과: apple

 토마토: tomato




큐(Queue)랑 스택(Stack)도 있숩!

 


'NOTE > Programming' 카테고리의 다른 글

[C#] abstract(추상) 클래스의 위험성.  (0) 2018.04.01
[C#] Reflection && Attributes  (0) 2018.04.01
[C#] 예외처리  (0) 2018.04.01
[C#] 인터페이스  (0) 2018.04.01
[C#] 확장 메소드, 분할 클래스, 중첩 클래스  (0) 2018.04.01