티스토리 뷰

C#/C# 강좌 Winform

Doridori C# 강의) 7.Array(배열)

꼬꼬마도리도리 2018. 6. 16. 21:40

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

안녕하세요 Doridori 입니다. 


이번강의는 Array(배열)에 대해서 강의 하도록 하겠습니다. 


제가 강의를 녹화 할때 프로젝트명을 Array로 해서 진행 했는데요 프로젝트를 생성 할 때에는 왠만 하면 C# 내에서 정의 되어 있는 클래스명 같은 걸 사용 하지면 Namepace가 충돌 나서 새로 정의 해서 사용 해야 할 수도 있어서 왠만 하면 없는 이름을 사용 하시는 것이 좋습니다. 

(코딩을 처음할때 많이 격었던 일인데 강의를 만드는 중에 갑작스럽게 만나니 엄청 당황 스러웠습니다. ㅜㅠ)


프로젝트를 생성 하실때 Array 말고 다른걸로 해주시면 됩니다. 

(아니면 강의 때 처리 한 것처럼 Namespace명을 바꿔주셔도 됩니다.)

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


Array (배열)


Source UI) Study_7_Array(UI).zip

Soruce 전체) Study_7_Array.zip

교재) 7강 Array.pdf



프로그램이 복잡해 질수록 Data를 처리해야 하는 양이 많아 지기 때문에 Data를 관리하는 형식이 매우 중요 하게 되는데 배열 역시 많은 Data를 처리하는데 자주 사용이 됩니다. 


Array 부터 파생 되서 List나 DataTable, DataSet, HashTable, Dictory 등 많은 배열 형태의 Data를 처리하게 되는데 Array는 배열의 기본이 되는 항목이라 알아두시면 많은 도움이 됩니다. 


기본 배열에 대한 내용이며 Array Class를 가지고 배열을 제어 하는 부분은 잘 사용하지 않지만 알아 두시면 유용하게 쓰일만한 부분만 설명 해 두었습니다. 


UI 부분의 경우 배열을 표시 해주기 유용한 Datagridview에 대해서 한번 알아보는 예제를 준비 했습니다. 

나중에 Table 형태의 자료를 다룰 때 좀더 편하게 사용 할 수 있습니다.


UI)

소스 Code 및 내용)

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            ArrayTest();  //Form을 시작 할 때 ArrayTest 를 실행 합니다. (프로그램과는 관계 없는 부분입니다.)
            ArrayClassTest();  //Form을 시작 할 때 ArrayClassTest 를 실행 합니다. (프로그램과는 관계 없는 부분입니다.)
        }
 
 
        /// <summary>
        /// Array Test용 예제
        /// </summary>
        private void ArrayTest()
        {
            //int iTest1 = 1;
            //int iTest2 = 2;
            //int iTest3 = 3;
            //int iTest4 = 4;
            //int iTest5 = 5;
 
            //배열의 선언과 초기화를 동시에 할수 있음
            int[] iArrayTest1 = { 12345 };
 
            //선언 하고 초기화 - 배열의 크기와 초기화가 동일하지 않으면 Error 발생
            int[] iArrayTest2 = new int[5] { 12345 };
 
            //배열 List 형태의 자료
            int[] iArrayTest3 = new int[5];
            iArrayTest3[0= 3;
            iArrayTest3[4= 3;
 
            string[] strArrayTest = new string[6];
 
            //strArrayTest[7] = "Dfs";  //Error
 
 
            //다차원 배열의 참고 자료 - Table 형태의 자료
            int[,] reading = new int[36] { { 49102112 }, { 146095 }, { 442400 } };
        }
 
        /// <summary>
        /// Array Class 속성 확인
        /// </summary>
        private void ArrayClassTest()
        {
            int[] iTest = { 105304153018 };
 
            int i = iTest.Length;  // 배열의 길이를 가져옴
 
            Array.Clear(iTest, 02);   // 선택 한 위치의 배열을 초기화 시킴
 
            Array.Resize(ref iTest, 10);   // 배열의 크기를 변경 함
 
            int iSearch30 = Array.IndexOf(iTest, 30);  // 배열 내에서 처음 찾은 위치를 가져옴
        }
 
 
        /// <summary>
        /// button1 Click 시 DataGridView에 (1,7) 의 배열을 표시한다
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            dgDay.Rows.Clear();
 
            int[] iTest = { 105304152218 };
 
            lblArrayCount.Text = String.Format("전체 자료 수 : {0}", iTest.Length.ToString());
 
            dgDay["colDay1"0].Value = iTest[0];
            dgDay["colDay2"0].Value = iTest[1];
            dgDay["colDay3"0].Value = iTest[2];
            dgDay["colDay4"0].Value = iTest[3];
            dgDay["colDay5"0].Value = iTest[4];
            dgDay["colDay6"0].Value = iTest[5];
            dgDay["colDay7"0].Value = iTest[6];
        }
 
        /// <summary>
        /// button2 Click 시 DataGridView에 (2,7) 의 배열을 표시한다
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            dgDay.Rows.Clear();
 
            //new int[2, 7]  //초기화 때 선언 해도 되지만 안해도 됨
            int[,] iTest = { { 105304152218 }, { 11152014152317 } };
 
            lblArrayCount.Text = String.Format("전체 자료 수 : {0}", iTest.Length.ToString());
 
            dgDay.Rows.Add();
 
            dgDay["colDay1"0].Value = iTest[00];
            dgDay["colDay2"0].Value = iTest[01];
            dgDay["colDay3"0].Value = iTest[02];
            dgDay["colDay4"0].Value = iTest[03];
            dgDay["colDay5"0].Value = iTest[04];
            dgDay["colDay6"0].Value = iTest[05];
            dgDay["colDay7"0].Value = iTest[06];
 
 
            dgDay["colDay1"1].Value = iTest[10];
            dgDay["colDay2"1].Value = iTest[11];
            dgDay["colDay3"1].Value = iTest[12];
            dgDay["colDay4"1].Value = iTest[13];
            dgDay["colDay5"1].Value = iTest[14];
            dgDay["colDay6"1].Value = iTest[15];
            dgDay["colDay7"1].Value = iTest[16];
        }
    }
}
 
cs



프로젝트를 생성 할때 강의에서는 Array로 생성 하였으나 예제에서는 프로젝트 명을 Default로 사용하였습니다. 

강의를 보시고 따라 진행 중이시면 중간에 Namespace를 변경해 주어야 하기 때문에 (Namespace로 Array를 사용 중일 경우 Array Class를 쓸수가 없기때문에 Using에서 이름을 새로 정의해줘도 됩니다.) 

프로젝트 이름을 겹치지 않게 만드는게 가장 편하겠죠 *^^*

의)


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함