study
[C#] Chapter 11. Array
yz
2022. 6. 2. 17:21
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 MyFirstCSharp_01
{
public partial class Chap11_Array : Form
{
// 배열 : 같은 데이터 타입의 여러 데이터가 있을 경우 하나의 배열 변수 이름으로 정의하는 데이터 형식
public Chap11_Array()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// 1. 배열을 초기화
int[] iaValue = new int[10];
int[] iaValue1 = new int[5] { 10, 2, 30, 3, 40 }; //[5]개가 들어가야함
int[] iaValue2 = new int[] { 10, 20, 30, 40 }; //미지정으로 몇 개가 와도 상관없다
int[] iaValue3 = { 1, 2 };
string[] sValue1 = "ABCD/EFG".Split('/');
int[] iValue4 = new int[iaValue.Length];
// 2. 배열에서 사용할 수 있는 주요 기능
// 배열 정렬
Array.Sort(iaValue1);
foreach (int ivalue in iaValue1)
{
// MessageBox.Show(Convert.ToString(ivalue)); //2, 3, 10, 30, 40
}
// 특정 데이터의 index 를 반환하는 기능
int iIndex = Array.IndexOf(iaValue1, 30);
// MessageBox.Show($"30 의 Index 는 : {iIndex}");
// 배열을 복사하는 방법.
//int[] iaValue4 = iaValue3; // 참조 (주소값만) 복사해서 공유하는 형태
//MessageBox.Show($"iaValue4 의 첫번째 값은 : {iaValue4[0]} 입니다.");
//iaValue3[0] = 3;
//MessageBox.Show($"iaValue4 의 첫번째 값은 : {iaValue4[0]} 입니다.");
// 배열의 크기를 조정한다. <Array.Resize>
Array.Resize<int>(ref iaValue1, 3);
//foreach (int ivalue in iaValue1)
//{
// MessageBox.Show(Convert.ToString(ivalue));
//}
// 배열을 전체적으로 초기화 <Array.Clear>
Array.Clear(iaValue1, 0, iaValue1.Length);
foreach (int ivalue in iaValue1)
{
MessageBox.Show(Convert.ToString(ivalue));
}
}
private void button2_Click(object sender, EventArgs e)
{
// 2차원 배열의 초기화하는 방법.
int[,] iaArray = new int[2, 3];
iaArray[0, 0] = 1;
iaArray[0, 1] = 2;
iaArray[0, 2] = 3;
iaArray[1, 0] = 4;
iaArray[1, 1] = 5;
iaArray[1, 2] = 6;
int[,] aArray2 = new int[2, 3] { { 1, 2, 3 }, { 4, 5, 6 } };
// 행의 수 구하는 기능
int iArrayRowCount = aArray2.GetLength(0); //0 고정
// 열의 수 구하는 기능
int iArrayColumnCount = aArray2.GetLength(1); //1 고정
// 1. 위의 배열을 텍스트 박스에 표현하세요.
textBox1.Text = "---------For---------\r\n";
string sArrayList = string.Empty; //문자열은 null을 허용해서 string sArrayList;여도 동작
for (int x = 0; x < iArrayRowCount; x++)
{
for (int y = 0; y < iArrayColumnCount; y++)
{
sArrayList += $"aArray2 의 [{x}, {y}] 의 값은 : {aArray2[x, y]} "; //보간은 형변환 자동
}
textBox1.Text += sArrayList + "\r\n"; //누적된 값을 텍스트에 담음
sArrayList = ""; //이전 행의 누적된 결과를 지우고 새 행 시작
}
// 2. Foreach
textBox1.Text += "---------Foreach---------\r\n";
//textBox1.Text = textBox1.Text + "----------For----------\r\n";
int iColumnCount = 0;
foreach(int iResult in aArray2)
{
sArrayList += $"{iResult}, ";
if (++iColumnCount == iArrayColumnCount)
{
sArrayList += "\r\n";
iColumnCount = 0;
}
}
textBox1.Text += sArrayList;
}
}
}
LIST