본문 바로가기
Language/C#

[c#]ArrayList

by ninanio3 2012. 3. 22.


이렇게 만들어보자.



일단 ArrayList라는 녀석이 어떻게 생겼는지 알아야된다...
나는 ArrayList를 다차원배열로 만들어서 넣으려고 했는데, 안된다. -ㅅ-;
어떻게 넣어야 할지, 구조적으로 잘 들어오지는 않았지만, Add라는 함수를 이용하여 차곡차곡 쌓을 수 있는듯...

그리고 string의 method 중에서 Concat이라는 method를 이용하여 카드패턴(♠◆♥♣)과 숫자를 합쳤다.
Card.Add(pattern[i] + cardNum[j]); 과 같이 "+"를 이용하여 붙일 수 있지만... method를 하나라도 더 써보자는 목적에서 Concat을 썼다. 그리고 책에도 Concat을 썼다. ㅎㅎ

아래는 코드다.




using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HEK_Exer;
using System.Collections;
/*
 * 문제 내용 : 서로 다른 카드 52장을 만들어 보자.
 * 학습 내용 : Collection 계열 ArrayLIst를 만들어보자.
 * 힌트 내용 : Array + List 배열과 비슷하면서 순서대로 저장하고 사용할 수 있는 클래스다.
 * */

namespace HEK_Exercise
{
    public class Program
    {
        /*
         * list 앞뒤로 바꾸기
         * 알파벳-숫자로 정렬
        // */
        public static void Main(string[] args)
        {
            HEK_Exer.HEK_Exer exer = new HEK_Exer.HEK_Exer();
            ArrayList a = exer.CardList();
            //일반 ArrayList 출력
            exer.PrintCard(a);
            Console.WriteLine("-------------------------------------------");
            //알파벳-숫자로 정렬
            exer.Sort(a);
            exer.PrintCard(a);
            Console.WriteLine("-------------------------------------------");
            //list 앞뒤로 바꾸기
            exer.Reverse(a);
            exer.PrintCard(a);
            Console.WriteLine("-------------------------------------------");           
        }
    }
}


/*
 * 이 문제의 출처는 c#프로그래밍 기본기 익히기
 * , 정보문화사, 조효은지음
 */


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace HEK_Exer
{
    public class HEK_Exer
    {
        string[] pattern = { "♠", "◆", "♥", "♣" };//{ "S", "D", "H", "C" };
        string[] cardNum = { "A", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };
        //♠◆♥♣ 순서. A23456789TJQK 순서.
        public ArrayList CardList()
        {
            ArrayList Card = new ArrayList();
            for (int i = 0; i < pattern.Length; i++)
            {
                for (int j = 0; j < cardNum.Length; j++)
                {
                    Card.Add(string.Concat(pattern[i], cardNum[j]));
                    //Card.Add(pattern[i] + cardNum[j]);
                    //Card = pattern[i].Insert(i,cardNum[j]);
                }
            }
            return Card;
        }
        public void PrintCard(ArrayList card)
        {
            for (int i = 0; i < card.Count; i++)
            {
                Console.Write("{0} ", card[i]);
                if ((i + 1) % cardNum.Length == 0)
                {
                    Console.WriteLine();
                }
            }
        }
        public void Reverse(ArrayList a)
        {
            a.Reverse();           
        }
        public void Sort(ArrayList a)
        {
            a.Sort();
        }
    }
}

'Language > C#' 카테고리의 다른 글

디버깅 걸지 않고 예외 throw 하는 방법  (0) 2014.04.10
[c#] 2진수 변환  (0) 2012.03.28
[c#]char 사용법  (0) 2012.03.20
[c#]string 사용법  (0) 2012.02.17
[c#] params 키워드 사용법  (0) 2012.01.20