C#

[C# 기초공부] 배열(3) 배열을 리턴하는 함수 / 배열의 메서드들

zoozoo2 2023. 1. 6. 18:28

배열을 리턴한다는 의미?

배열이 참조하는 객체의 주소값을 리턴하는 것임

 

namespace ConsoleApp4
{
    class Myclass
    {
        static int[] CreateArray1(int nSize)
        {
            int[] Array1 = new int[nSize];
            for(int i=0; i<Array1.Length; i++)
            {
                Array1[i] = i;
            }
            return Array1;  
        }

        static int[,] CreateArray2(int nRow, int nCol)
        {
            int index = 0;
            int[,] Array2 = new int[nRow, nCol];
            //2
            for(int i = 0; i<nRow; i++) { 
                //3
                for(int j=0; j<nCol; j++)
                {
                    Array2[i, j] = index++;
                }
            }
            return Array2;
        }
        static void Main(string[] args)
        {
            int[] nArray1;
            int[,] nArray2;

            nArray1 = CreateArray1(5);
            nArray2 = CreateArray2(2, 3);

            for (int i = 0; i < nArray1.Length; i++)
            {
                Console.Write(nArray1[i]);
            }
            Console.WriteLine();

            for(int i=0; i<2; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(nArray2[i, j]);
                }
                Console.WriteLine();
            }
        }
    }
}

 

🟪 배열의 메서드들

배열: Array 클래스로부터 파생된 객체

🥕 배열 초기화 메서드

public static void Clear(

          Array array,

          int index,

          int length

)

 

namespace ConsoleApp4
{
    class Myclass
    {
        static void Main(string[] args)
        {
            int[] nArray1 = { 1, 2, 3, 4, 5 };
            Array.Clear(nArray1, 2, 3);
            foreach (int m in nArray1)
            {
                Console.Write(m);
            }
            Console.WriteLine();

            Array.Clear(nArray1, 0, nArray1.Length);
            foreach(int m in nArray1)
            {
                Console.Write(m);
            }
            Console.WriteLine() ;

            
        }
    }
}

 

 

🥕 배열 복사 메서드

public Object Clone()

namespace ConsoleApp4
{
    class Myclass
    {
        static void Main(string[] args)
        {
            int[] nArray1 = { 1, 2, 3, 4 };
            int[] nCloneArray = (int[])nArray1.Clone(); //Clone()의 리턴타입이 Object여서(박싱) 언박싱해줘야함(캐스트)

            nCloneArray[2] = 30;
            foreach (int m in nArray1)
            {
                Console.Write(m);
            }
            Console.WriteLine();

            foreach (int m in nCloneArray)
            {
                Console.Write(m);
            }
            Console.WriteLine();

            string[] Days = { "일", "월", "화", "수", "목", "금", "토" };
            string[] DaysClone = (string[])Days.Clone();
            foreach(string str in DaysClone)
            {
                Console.Write(str);
            }

        }
    }
}