본문 바로가기
C#/C# 일반 & Basic (General & Basic)

C# 프로그래머 되기 - ArrayList 활용하기

by ★√★ 2021. 3. 4.

안녕하세요, Davey 입니다. 오늘 포스팅 할 사항은,  ArrayList에 대해서, 설명해 드리겠습니다. 파이썬의 리스트라고 생각하시면 될 거 같습니다. 

 

 

 

ArrayList-썸네일

 

 

그럼 ArrayList에 대해서 하나 하나 설명 해 드릴 테니, 천천히 따라오시면 됩니다. 

 

ArrayList 사용

-  여러 값을 List 형태로, 한 인스턴스에, 초기값을 선언하기 위한 함수로써, 인스턴스 생성은 아래 구문으로 생성이 가능합니다.

비슷한 기능으로는 List<>가 있습니다. 차이점으로는, 값의 형식을 따로 선언 할 필요는 없습니다.

: ArrayList "Instance 이름" = new ArrayList();

 

 1) Add를  이용하여, 값 추가 하기

  -  "Instance 이름".Add ("값")

  - 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다. 

====================================================================

ArrayList test01 = new ArrayList();

 

                test01.Add(1);

                test01.Add(2);

                test01.Add(3);

                test01.Add(4);

 

 

                for (int i = 0; i < test01.Count; i++)

                {

                    Console.WriteLine(test01[i]);

                }

====================================================================

 

 

 - 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. 즉, Add 매소드를 통해서, 값이 추가 된 걸 확인 하실 수 있습니다. 

 

ArrayList-코드-관련-사진1

 

 

 2) Insert를 이용하여, 값 추가하기

 - "Instance 이름".Insert(index No, "값")

 - 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다. 

====================================================================

 

ArrayList test01 = new ArrayList();

 

                test01.Insert(0,100);

                test01.Insert(1, 200);

                test01.Insert(2, 300);

                test01.Insert(3, 400);

                test01.Insert(4, 500);

 

 

                for (int i = 0; i < test01.Count; i++)

                {

                    Console.WriteLine(test01[i]);

                }

 

====================================================================

 

 - 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. 즉, Insert 매소드를 통해서, 값이 추가 된 걸 확인 하실 수 있습니다. 

 

ArrayList-코드-관련-사진2

 

 

3) AddRange를 이용하여 범위의 값을 추가하기

-  "Instance 이름".AddRange ("값들을 가지고 있는 ArrayList Instance 이름")

 - 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다. 

====================================================================

ArrayList test01 = new ArrayList();

          

 

                test01.Insert(0,100);

                test01.Insert(1, 200);

                test01.Insert(2, 300);

                test01.Insert(3, 400);

                test01.Insert(4, 500);

 

 

            ArrayList test02 = new ArrayList()  // 추가적으로 입력할 ArrayList 그룹인, test02를 선언

            {

                600, 700

            };

 

            test01.AddRange(test02);

 

 

            for (int i = 0; i < test01.Count; i++)

                {

                    Console.WriteLine(test01[i]);

                }

 

 

====================================================================

 

 

 - 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. 즉, AddRange 매소드를 통해서, ArrayList test02안에 있는 모든 값을 한꺼 번에 추가 된 걸 확인 하실 수 있습니다. 

 

 

ArrayList-코드-관련-사진3

 

 

3) Remove를 이용하여, 값 삭제하기

- "Instance 이름".Remove ("값") 

 - 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다. 

====================================================================

               

           

   ArrayList test01 = new ArrayList();

           

 

                test01.Insert(0,100);

                test01.Insert(1, 200);

                test01.Insert(2, 300);

                test01.Insert(3, 400);

                test01.Insert(4, 500);

 

 

            ArrayList test02 = new ArrayList()

            {

                600, 700

            };

 

            test01.AddRange(test02);

 

 

            test01.Remove(100);

            test01.Remove(200);

            test01.Remove(300);

 

 

            for (int i = 0; i < test01.Count; i++)

                {

                    Console.WriteLine(test01[i]);

                }

 

====================================================================

 

- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. 즉, Remove 매소드를 통해서, "100", "200"  삭제 된 것을 확인 하실 수 있습니다. 

 

 

ArrayList-코드-관련-사진4

 

 

4) RemoveAt을 이용하여, 값 삭제하기

- "Instance 이름".RemoveAt (값이 위치하는 Index No) 

 - 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다. 

====================================================================

ArrayList test01 = new ArrayList();

          

 

                test01.Insert(0,100);

                test01.Insert(1, 200);

                test01.Insert(2, 300);

                test01.Insert(3, 400);

                test01.Insert(4, 500);

 

 

            ArrayList test02 = new ArrayList()

            {

                600, 700

            };

 

            test01.AddRange(test02);

 

 

            test01.RemoveAt(0);  // 제일 처음에 위치 해 있는 값을 삭제

            test01.RemoveAt(0); 

            // 위에 삭제 명령이 실행이 되면, "200" 값이 제일 처음 위치에 있기 때문에 다시, 똑같은 명령어를 수행

            test01.RemoveAt(0);

            // 위에 삭제 명령이 실행이 되면, "300" 값이 제일 처음 위치에 있기 때문에 다시, 똑같은 명령어를 수행

 

            for (int i = 0; i < test01.Count; i++)

                {

                    Console.WriteLine(test01[i]);

                }

====================================================================

 

- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. 즉, 3번의 결과 값과 똑같은 걸 확인 할 수 있습니다. 명령어를 실행하고, 값의 위치도 생각해서 명령어를 구현해야 합니다. 

 

 

ArrayList-코드-관련-사진5

 

 

5) RemoveRange를 이용하여, 값 삭제하기

- "Instance 이름".RemoveRange ("값들을 가지고 있는 ArrayList Instance 이름") 

 - 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다. 

====================================================================

ArrayList test01 = new ArrayList();

          

 

                test01.Insert(0,100);

                test01.Insert(1, 200);

                test01.Insert(2, 300);

                test01.Insert(3, 400);

                test01.Insert(4, 500);

 

 

            ArrayList test02 = new ArrayList()

            {

                600, 700

            };

 

            test01.AddRange(test02);

 

            test01.RemoveRange(1,6); // index 1부터 6전까지의 값을 모두 삭제

 

 

            for (int i = 0; i < test01.Count; i++)

                {

                    Console.WriteLine(test01[i]);

                }

====================================================================

 

- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. 즉, index 1부터 6전까지의 값을 모두 삭제된 것을 확인 하실 수 있습니다. 결국 index "0" 자리에 있는 "100" 만 남은 것입니다.

 

 

ArrayList-코드-관련-사진6

 

 

6) ArrayList 값을 다른 변수로 입력

- (숫자 타입) int a =  (int) "Instance 이름"[Index No] 

- (문자 타입) string b = (string) "Instance 이름"[Index No] 

- (var 타입) var c = (int or string) "Instance 이름"[Index No] 

 - 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다. 

====================================================================

ArrayList test01 = new ArrayList();

          

 

                test01.Insert(0,100);

                test01.Insert(1, "200");

                test01.Insert(2, 300);

                test01.Insert(3, 400);

                test01.Insert(4, 500);

 

 

            ArrayList test02 = new ArrayList()

            {

                600, 700, "test01_string"

            };

 

            test01.AddRange(test02);

 

 

            for (int i = 0; i < test01.Count; i++)

                {

                    Console.WriteLine(test01[i]);

                }

 

 

            int a = (int)test01[0];              // int Type의 변수 a에, "100"을 입력

            string b = (string)test01[1];      // string Type의 변수 b에, "200"을 입력

            var c = (int)test01[2];              // var Type의 변수 c에, string Type의 "200"을 입력

 

            Console.WriteLine(a);

            Console.WriteLine(b);

            Console.WriteLine(c);

 

 

            Console.ReadKey();

===========================================

 

- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. 즉, 각 변수 타입 별로 값이 입력된 것을 확인 할 수 있습니다. var Type으로 선언한, "c" 변수는 변수 입력할 때 선언하는 값 Type에 따라 변경이 가능합니다.

 

 

ArrayList-코드-관련-사진7

 

 

7) ArrayList 안에 존재하는 값의 갯수를 출력하기

 - "Instance 이름".Count

 - 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다. 

====================================================================

ArrayList test01 = new ArrayList();

          

 

                test01.Insert(0,100);

                test01.Insert(1, "200");

                test01.Insert(2, 300);

                test01.Insert(3, 400);

                test01.Insert(4, 500);

 

 

            ArrayList test02 = new ArrayList()

            {

                600, 700, "test01_string"

            };

 

            test01.AddRange(test02);

 

           

 

 

            for (int i = 0; i < test01.Count; i++)

                {

                    Console.WriteLine(test01[i]);

                }

 

            Console.WriteLine("Number of values in test01 ; ");

 

            Console.WriteLine(test01.Count);

 

            Console.ReadKey();

 

====================================================================

 

- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. 즉, test01 에 들어있는 값의 개수를 확인 할 수있습니다. 안에 무슨 타입이든, 값의 개수로만 출력을 합니다.

 

 

ArrayList-코드-관련-사진8

 

 

8) Sort, Reverse를 이용하여, 값들의 오름차순 or 내림차순 정렬하기

 - "Instance 이름".Sort (오름차순 정렬)

 - "Instance 이름".Reverse (내림차순 정렬)

 - 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다. 

====================================================================

 

ArrayList test01 = new ArrayList();

          

 

                test01.Insert(0,100);

                test01.Insert(1, 200);

                test01.Insert(2, 300);

                test01.Insert(3, 400);

                test01.Insert(4, 500);

 

 

            ArrayList test02 = new ArrayList()

            {

                600, 700

            };

 

            test01.AddRange(test02);

 

           

 

 

            for (int i = 0; i < test01.Count; i++)

                {

                    Console.WriteLine(test01[i]);

                }

 

 

            Console.WriteLine("Number of values in test01 :");

            Console.WriteLine(test01.Count);

 

            Console.WriteLine("Sorted test01 :");

 

            test01.Sort();                            // 오름차순으로 정렬

 

            for (int i = 0; i < test01.Count; i++)

            {

                Console.WriteLine(test01[i]);

            }

 

 

            Console.WriteLine("Reversed test01 :");

           

            test01.Reverse();                         // 내림차순으로 정렬

 

            for (int i = 0; i < test01.Count; i++)

            {

                Console.WriteLine(test01[i]);

            }

 

            Console.ReadKey();

 

====================================================================

 

 

- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. Sort는 오름차순으로 정렬하고, Reverse는 내림차순으로 정렬해서, 출력하는 걸 확인 할 수 있습니다.

 

 

ArrayList-코드-관련-사진9

 

 

9) Contain 를 이용하여, 값들의 존재 여부 알아보기

 - "Instance 이름".Contain("확인하고자 하는 값")

 - 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다. 

====================================================================

ArrayList test01 = new ArrayList();

          

 

                test01.Insert(0,100);

                test01.Insert(1, "200");

                test01.Insert(2, 300);

                test01.Insert(3, 400);

                test01.Insert(4, 500);

 

 

            ArrayList test02 = new ArrayList()

            {

                600, 700, "test01_string"

            };

 

            test01.AddRange(test02);

 

           

 

 

            for (int i = 0; i < test01.Count; i++)

                {

                    Console.WriteLine(test01[i]);

                }

 

            Console.WriteLine("Check if there is 100 in test01 ; ");

 

            Console.WriteLine(test01.Contains(100));               

            // Contains 매소드를 이용해서, 100이 존재하는지 확인 할 수 있습니다. 만약에 있으면, "true" 를, 없으면

            "false"를 출력합니다.

 

            Console.ReadKey();

====================================================================

 

- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. test01안에 100이 존재하므로, "true"를 출력하게 됩니다.

 

 

ArrayList-코드-관련-사진10

 

 

이상입니다. 개인적으로, ArrayList와 다른 함수도 같이 정리하려고 했는데, ArrayList만 해도 정말 분량이 많은 거 같습니다. 위 예제를 눈으로만 보지 마시고, 항상 실습을 해보셔야 합니다! 그럼 오늘도 C# Programmer가 되는 그 날까지, 열심히 공부하고, 같이 성장하시죠! 감사합니다.

 

제 Posting이 조금이나마 정보 전달에 도움이 되셨길 빌며, 되셨다면, 구독, 댓글, 공감 3종 세트 부탁 드립니다. 감사합니다.


[저작권이나, 권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다. 검토 후 수정 및 삭제 조치 하도록 하겠습니다. 그리고, 기재되는 내용은 개인적으로 습득한 내용이므로, 혹 오류가 발생할 수 있을 가능성이 있으므로, 기재된 내용은 참조용으로만 봐주시길 바랍니다. 게시물에, 오류가 있을때도, Comment 달아 주시면, 검증 결과를 통해, 수정하도록 하겠습니다.]

728x90

댓글


// 내부링크를 현재창으로 열기 // Open internal links in same tab