C#/์ด๊ฒƒ์ด C#์ด๋‹ค

    55. foreach๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด ๋งŒ๋“ค๊ธฐ

    foreach ๋ฌธ์€ for ๋ฌธ ์ฒ˜๋Ÿผ ์š”์†Œ์˜ ์œ„์น˜๋ฅผ ์œ„ํ•œ ์ธ๋ฑ์Šค ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ํ•„์š” ์—†๋‹ค. foreach๋ฌธ์€ ์•„๋ฌด ํ˜•์‹์˜ ๊ฐ์ฒด์—์„œ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ๋ฐฐ์—ด์ด๋‚˜ ๋ฆฌ์ŠคํŠธ ๊ฐ™์€ ์ปฌ๋ ‰์…˜์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. foreach๋ฌธ์ด ๊ฐ์ฒด ๋‚ด์˜ ์š”์†Œ๋ฅผ ์ˆœํšŒํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” foreach๋ฌธ๊ณผ์˜ ์•ฝ์†์„ ์ง€์ผœ์•ผ ํ•˜๋Š”๋ฐ, ์•ฝ์†์ด ๋ญ๋‹ค? ์ธ.ํ„ฐ.ํŽ˜.์ด.์Šค foreach ๊ตฌ๋ฌธ์€ IEnumerable์„ ์ƒ์†ํ•˜๋Š” ํ˜•์‹๋งŒ ์ง€์›ํ•œ๋‹ค. ์ฆ‰, ํด๋ž˜์Šค๋„ IEnumerable์„ ์ƒ์†ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด foreach ๋ฌธ์„ ์ด์šฉํ•ด์„œ ์š”์†Œ๋ฅผ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ด์•ผ๊ธฐ์ด๋‹ค. IEnumerable ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‹จ ํ•˜๋‚˜ ๋ฟ์ด๋‹ค. MyList๋Š” ์ด ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ๋ฉ”์†Œ๋“œ ์„ค๋ช… IEnumerator Get..

    54. ์ธ๋ฑ์„œ

    ์ธ๋ฑ์„œ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ์ฒด ๋‚ด์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ํ”„๋กœํผํ‹ฐ์ด๋‹ค. ๊ฐ์ฒด๋ฅผ ๋งˆ์น˜ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•ด์ค€๋‹ค. class ํด๋ž˜์Šค์ด๋ฆ„ { ํ•œ์ •์ž ์ธ๋ฑ์„œํ˜•์‹ this[ํ˜•์‹ index] //์ธ๋ฑ์Šค์˜ ์‹๋ณ„์ž๊ฐ€ ๊ผญ index์ผ ํ•„์š”์—†๋‹ค. ์ทจํ–ฅ๊ป ์กฐ์ ˆ! { get{ //index๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ ๋ฐ˜ํ™˜} set{ //index๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ ์ €์žฅ} } } ์ธ๋ฑ์„œ๋Š” ํ”„๋กœํผํ‹ฐ์ฒ˜๋Ÿผ ์‹๋ณ„์ž๋ฅผ ๋”ฐ๋กœ ๊ฐ€์ง€์ง€ ์•Š๋Š”๋‹ค! ํ”„๋กœํผํ‹ฐ๋Š” ๊ฐ์ฒด ๋‚ด์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ํ†ต๋กœ์ธ๋ฐ, ํ”„๋กœํผํ‹ฐ๊ฐ€ ์ด๋ฆ„์„ ํ†ตํ•ด ๊ฐ์ฒด ๋‚ด์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ฒŒ ํ•ด์ค€๋‹ค๋ฉด, ์ธ๋ฑ์„œ๋Š” ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด ๋‚ด์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ฒŒ ํ•ด์ค€๋‹ค. ์ธ๋ฑ์„œ์˜ ์„ ์–ธ ์˜ˆ MyList๋Š” ๋‚ด๋ถ€์— ์ •์ˆ˜ ํ˜•์‹ ๋ฐฐ์—ด์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์ธ๋ฑ์„œ๋ฅผ ํ†ตํ•ด ์ด ๋ฐฐ์—ด์— ์ ‘๊ทผํ•œ๋‹ค. ์ธ๋ฑ์„œ๋ฅผ ํ†ตํ•ด..

    53. ์ปฌ๋ ‰์…˜(ArrayList, Queue, Stack, Hashtable)

    ์ปฌ๋ ‰์…˜์ด๋ž€ ๊ฐ™์€ ์„ฑ๊ฒฉ์„ ๋ˆ ๋ฐ์ดํ„ฐ์˜ ๋ชจ์Œ์„ ๋‹ด๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งํ•œ๋‹ค. public abstrack class Array : ICloneable, IList, ICollection, IEnumerable - ArrayList ๊ฐ€์žฅ ๋ฐฐ์—ด๊ณผ ๋‹ฎ์€ ์ปฌ๋ ‰์…˜์ด๋‹ค. ์ปฌ๋ ‰์…˜์˜ ์š”์†Œ์— ์ ‘๊ทผํ•  ๋•Œ๋Š” [ ] ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜๊ณ , ํŠน์ • ์œ„์น˜์— ์žˆ๋Š” ์š”์†Œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์˜๋กœ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•œํŽธ, ๋ฐฐ์—ด๊ณผ๋Š” ๋‹ฌ๋ฆฌ ์ปฌ๋ ‰์…˜์„ ์ƒ์„ฑํ•  ๋•Œ ์šฉ๋Ÿ‰์„ ๋ฏธ๋ฆฌ ์ง€์ •ํ•  ํ•„์š” ์—†์ด ํ•„์š”์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๊ทธ ์šฉ๋Ÿ‰์ด ๋Š˜์–ด๋‚˜๊ฑฐ๋‚˜ ์ค„์–ด๋“ ๋‹ค. ArrayList์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ฉ”์†Œ๋“œ๋Š” Add(), RemoveAt(), Insert() ์ด๋ ‡๊ฒŒ ์„ธ ๊ฐœ์ด๋‹ค. Add() : ์ปฌ๋ ‰์…˜์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์žˆ๋Š” ์š”์†Œ ๋’ค์— ์ƒˆ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ RemoveAt() : ํŠน์ • ์ธ๋ฑ์Šค์— ..

    52. ๊ฐ€๋ณ€๋ฐฐ์—ด

    ์ง„์ •ํ•œ ์˜๋ฏธ์—์„œ ๋ฐฐ์—ด์„ ์š”์†Œ๋กœ ๊ฐ–๋Š” ๋ฐฐ์—ด์€ ๊ฐ€๋ณ€ ๋ฐฐ์—ด์ด๋‹ค. ๊ฐ€๋ณ€ ๋ฐฐ์—ด์€ ๋‹ค์–‘ํ•œ ๊ธธ์ด์˜ ๋ฐฐ์—ด์„ ์š”์†Œ๋กœ ๊ฐ–๋Š” ๋‹ค์ฐจ์› ๋ฐฐ์—ด๋กœ ์ด์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€๋ณ€ ๋ฐฐ์—ด์€ ๋‹ค์ฐจ์› ๋ฐฐ์—ด๊ณผ ๋‹ฌ๋ฆฌ ๋ฐฐ์—ด์„ ์š”์†Œ๋กœ ์‚ฌ์šฉํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€๋ณ€ ๋ฐฐ์—ด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธํ•œ๋‹ค. ๋ฐ์ดํ„ฐํ˜•์‹[ ][ ] ๋ฐฐ์—ด์ด๋ฆ„ = new ๋ฐ์ดํ„ฐํ˜•์‹[๊ฐ€๋ณ€ ๋ฐฐ์—ด์˜ ์šฉ๋Ÿ‰][ ]; 2์ฐจ์› ๋ฐฐ์—ด์€ [ ]๋ฅผ ํ•˜๋‚˜๋งŒ ์“ฐ๊ณ  ๊ทธ ์•ˆ์— ์ฒจ์ž๋ฅผ ๋‘ ๊ฐœ ์‚ฌ์šฉํ•œ ๋ฐ˜๋ฉด, ๊ฐ€๋ณ€ ๋ฐฐ์—ด์€ [ ]์ด ๋‘ ๊ฐœ ์ด๋‹ค. ๊ฐ€๋ณ€ ๋ฐฐ์—ด์˜ ์š”์†Œ๋กœ ์ž…๋ ฅ๋˜๋Š” ๋ฐฐ์—ด์€ ๊ทธ ๊ธธ์ด๊ฐ€ ๋ชจ๋‘ ๊ฐ™์„ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ทธ๋ž˜์„œ Jagged ๋ฐฐ์—ด์ด๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์šฉ๋Ÿ‰์ด 3๊ฐœ์ธ ๋ฐฐ์—ด jagged๋ฅผ ์„ ์–ธํ•œ ๋‹ค์Œ, jagged์˜ ๊ฐ ์š”์†Œ์— ํฌ๊ธฐ๊ฐ€ ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ฐฐ์—ด๋“ค์„ ํ• ๋‹นํ•œ๋‹ค. 0๋ฒˆ ์š”์†Œ์—๋Š” ๊ธธ์ด๊ฐ€ 5์ธ ๋ฐฐ์—ด, 1๋ฒˆ ์š”์†Œ์—๋Š” ๊ธธ์ด..

    51. ๋‹ค์ฐจ์›๋ฐฐ์—ด

    int[,,] array = new int[4, 3, 2] { { {0,1}, {2,3 }, {4,5 } }, { {6,7 }, {8,9 }, {10,11 } }, { {12,13 }, {14,15 }, {16,17 } }, { {18,19 }, {20,21 }, {22,23 } }, }; using System; namespace MoreOnArray { class MainApp { static void Main(string[] args) { int[,,] array = new int[4, 3, 2] { { {0,1}, {2,3 }, {4,5 } }, { {6,7 }, {8,9 }, {10,11 } }, { {12,13 }, {14,15 }, {16,17 } }, { {18,19 }, {20,21 },..

    50. 2์ฐจ์› ๋ฐฐ์—ด

    2์ฐจ์› ๋ฐฐ์—ด์€ ๊ฐœ๋…์ ์œผ๋กœ 2๊ฐœ์˜ ์ฐจ์›(์„ธ๋กœ+๊ฐ€๋กœ)์œผ๋กœ ์›์†Œ๋ฅผ ๋ฐฐ์น˜ํ•œ๋‹ค๊ณ ๋„ ๋งํ•˜๊ณ , 1์ฐจ์› ๋ฐฐ์—ด์„ ์›์†Œ๋กœ ๊ฐ–๋Š” ๋ฐฐ์—ด์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค. 2์ฐจ์› ๋ฐฐ์—ด์˜ ์„ ์–ธ ๋ฐ์ดํ„ฐํ˜•์‹[,] ๋ฐฐ์—ด์ด๋ฆ„ = new ๋ฐ์ดํ„ฐํ˜•์‹[2์ฐจ์›๊ธธ์ด, 1์ฐจ์›๊ธธ์ด]; 1์ฐจ์›์˜ ๊ธธ์ด๋Š” ๊ฐ€๋กœ ๋ฐฉํ–ฅ, 2์ฐจ์›์˜ ๊ธธ์ด๋Š” ์„ธ๋กœ ๋ฐฉํ–ฅ. int[,] test = new int[2, 3]; test[0, 0] = 1; test[0, 1] = 2; test[0, 2] = 3; test[1, 0] = 4; test[1, 1] = 5; test[1, 2] = 6; int[2,3]์€ ๊ธธ์ด๊ฐ€ 3์ธ 1์ฐจ์› ๋ฐฐ์—ด์„ ์›์†Œ๋กœ 2๊ฐœ ๊ฐ–๊ณ  ์žˆ๋Š” 2์ฐจ์› ๋ฐฐ์—ด์ด๋ผ๊ณ  ์ฝ๋Š”๋‹ค. (2์ฐจ์› ๋ฐฐ์—ด์„ ์ฝ”๋“œ์—์„œ ์ฝ์„ ๋•Œ๋Š” [] ์•ˆ์— ์žˆ๋Š” ์ฐจ์›์˜ ๊ธธ์ด๋ฅผ ๋’ค์—์„œ๋ถ€ํ„ฐ ์ฝ์œผ๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค.) int[,] ..

    49. Array๋กœ ์•ŒํŒŒ๋ฒณ ์ถœ๋ ฅํ•˜๋Š” ์˜ˆ์ œ

    using System; namespace MoreOnArray { class MainApp { static void PrintArray(System.Array array) { foreach (var e in array) Console.WriteLine(e); Console.WriteLine(); } static void Main(string[] args) { //'Z'๋Š” ์•„์Šคํ‚ค์ฝ”๋“œ๋กœ 90, 'A'๋Š” 65์ด๋‹ค. ๋Œ€๋ฌธ์ž ์•ŒํŒŒ๋ฒณ ๊ฐœ์ˆ˜๋Š” ๋ชจ๋‘ 90-65+1('Z'-'A'+1), ์ฆ‰ 26์ด๋‹ค. char[] array = new char['Z'-'A'+1]; for (int i = 0; i < array.Length; i++) array[i] = (char)('A' + i); PrintArray(array); }..

    48. System.Array

    C#์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ์ฒด์ด๋‹ค. ๋ฐฐ์—ด๋„ ๊ฐ์ฒด์ด๋ฉฐ, ๋ฐฐ์—ด์€ System.Array ํด๋ž˜์Šค์— ๋Œ€์‘๋œ๋‹ค. ๋‹ค์Œ ์˜ˆ์ œ๋Š” int ๊ธฐ๋ฐ˜์˜ ๋ฐฐ์—ด์ด System.Array ํ˜•์‹์—์„œ ํŒŒ์ƒ๋˜์—ˆ์Œ์„ ๋ณด์—ฌ์ค€๋‹ค. using System; namespace DerivedFromArray { class MainApp { static void Main(string[] args) { int[] array = new int[] { 10, 30, 20, 7, 1 }; Console.WriteLine($"Type of array : {array.GetType()}"); Console.WriteLine($"Base type of array : {array.GetType().BaseType}"); } } } ์ถœ๋ ฅ ๊ฒฐ๊ณผ Type of array..

    47. ๋ฐฐ์—ด์“ฐ๋Š” ์ด์œ , ๋ฐฐ์—ด ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ• 3๊ฐ€์ง€

    ๋ณ€์ˆ˜๋ฅผ ๋ช…ํ•จ์ด๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, ๋ฐฐ์—ด์ด๋‚˜ ์ปฌ๋ ‰์…˜์€ ๋ช…ํ•จ์ง‘์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค! ๋ช…ํ•จ์ง‘์ด ์˜์—… ์‚ฌ์›์˜ ๋ช…ํ•จ ๊ด€๋ฆฌ ๊ณ ๋ฏผ์„ ๋œ์–ด์ฃผ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฐฐ์—ด๊ณผ ์ปฌ๋ ‰์…˜์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๊ณ ๋ฏผ์„ ๋œ์–ด์ค€๋‹ค. ๋ณ€์ˆ˜๋ฅผ 300๊ฐœ ์„ ์–ธํ•˜์ง€ ๋ง๊ณ  300๊ฐœ์˜ ์šฉ๋Ÿ‰์„ ๊ฐ€์ง„ ๋ณ€์ˆ˜๋ฅผ 1๊ฐœ๋งŒ ์„ ์–ธํ•˜๋„๋ก ํ•˜์ž. ๋ฐ์ดํ„ฐํ˜•์‹[] ๋ฐฐ์—ด ์ด๋ฆ„ = new ๋ฐ์ดํ„ฐํ˜•์‹[์šฉ๋Ÿ‰]; ๊ฐ™์€ ์„ฑ๊ฒฉ์˜ ๋ฐ์ดํ„ฐ๋ผ๋ฉด ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฐฐ์—ด๋กœ ์ •์˜ํ•œ ๋‹ค์Œ for๋ฌธ์ด๋‚˜ foreach๋ฌธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ฝ”๋“œ๋ฅผ ํ›จ์”ฌ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. class MainApp { static void Main(string[] args) { float[] tests = new float[5]; tests[0] = 75; tests[1] = 69; tests[2] = 100; t..

    46. ์ฑ•ํ„ฐ9 ์—ฐ์Šต๋ฌธ์ œ

    ์—ฐ์Šต๋ฌธ์ œ1 using System; namespace Ex9_1 { class NameCard { private int age; private string name; public int Age { get; set; } public string Name { get; set; } } class MainApp { static void Main(string[] args) { NameCard ACard = new NameCard(); ACard.Age = 20; ACard.Name = "๊น€๊ฐ‘์ˆ˜"; Console.WriteLine($"{ACard.Name}์˜ ๋‚˜์ด๋Š” {ACard.Age}์ž…๋‹ˆ๋‹ค."); } } } ์ถœ๋ ฅ ๊ฒฐ๊ณผ ๊น€๊ฐ‘์ˆ˜์˜ ๋‚˜์ด๋Š” 20์ž…๋‹ˆ๋‹ค. ์—ฐ์Šต๋ฌธ์ œ2 using System; namespace Ex9_1 {..