250x250
Rainbow๐ŸŒˆCoder
My dev Note๐Ÿ“’
Rainbow๐ŸŒˆCoder
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (411)
    • ๊ณต์ง€์‚ฌํ•ญ (0)
    • Debugger (10)
      • Visual Studio Debugger (1)
      • Chrome DevTools (3)
      • Visual Studio Code Debugger (4)
      • eclipse (1)
      • intelliJ (1)
    • OOP (2)
      • OOP (2)
    • TypeScript (54)
      • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ TypeScript (54)
    • Javascript (87)
      • Javascript (45)
      • Node.js (19)
      • React (5)
      • FE ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ค์ • (3)
      • React์™€ Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ (6)
      • next.js (2)
      • pixi.js (7)
    • ๋งˆํฌ์—… (23)
      • Html & Css (23)
    • C# (80)
      • C# (12)
      • ์ด๊ฒƒ์ด C#์ด๋‹ค (68)
    • C++ (30)
      • c++ (27)
      • win api (3)
    • Unity (18)
      • Unity(๊ธฐ์ดˆ) (8)
      • Unity(C#์ค‘๊ธ‰) (5)
      • ์œ ๋‹ˆํ‹ฐ ํฌํ†ค(๋„คํŠธ์›Œํฌ) (4)
      • unity c# MyCode (1)
    • Java & Spring (29)
      • Java (11)
      • ์Šคํ”„๋ง (8)
      • Java Algorithm (9)
      • Javs Data Structures (1)
    • ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (15)
      • ์ž๋ฃŒ๊ตฌ์กฐ (5)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (10)
    • ํ˜•์ƒ๊ด€๋ฆฌ (15)
      • Git (11)
      • ์†Œ์ŠคํŠธ๋ฆฌ (3)
    • ๊ทธ๋ž˜ํ”ฝ์Šค (7)
      • WebGl (7)
    • AWS (3)
      • aws (3)
    • ๋ฆฌ๋ˆ…์Šค (5)
      • ๋ฆฌ๋ˆ…์Šค (5)
    • ์ฑ… ๋ฆฌ๋ทฐ (13)
      • ํด๋ฆฐ์ฝ”๋“œ(์ฑ…๋ฆฌ๋ทฐ) (3)
      • ์œ ์ง€๋ณด์ˆ˜๊ฐ€๋Šฅํ•œ์ฝ”๋”ฉ์˜๊ธฐ์ˆ C#ํŽธ(์ฑ…๋ฆฌ๋ทฐ) (1)
      • ๋ฆฌํŒฉํ† ๋ง(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธํŒ) (9)
    • Server (2)
      • ๊ฒŒ์ž„ ์„œ๋ฒ„(๋„คํŠธ์›Œํฌ, ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ,OS) (2)
    • ์„ค๊ณ„, ์•„ํ‚คํ…์ณ (4)
    • ํŒŒ์ด์ฌ (5)
    • ๋””์ž์ธํŒจํ„ด (2)
    • mocha (2)
    • Jest (1)
    • Spine (1)
    • ์ธ๊ณต์ง€๋Šฅ (1)
      • ํ˜ผ์ž๊ณต๋ถ€ํ•˜๋Š”๋จธ์‹ ๋Ÿฌ๋‹+๋”ฅ๋Ÿฌ๋‹ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ใ…ฃใ„ท
  • ์ปดํฌ์ง€์…˜
  • MySQL
  • ์œ„์ž„

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Rainbow๐ŸŒˆCoder

My dev Note๐Ÿ“’

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

48. System.Array

2022. 2. 24. 15:22
728x90

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 : System.Int32[]
Base type of array : System.Array

๋”ฐ๋ผ์„œ System.Array์˜ ํŠน์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ๋ฅผ ํŒŒ์•…ํ•˜๋ฉด ๋ฐฐ์—ด์˜ ํŠน์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ๋ฅผ ์•Œ๊ฒŒ๋˜๋Š” ์…ˆ์ด๋‹ค.

๋ณด๋„ˆ์Šค๋กœ ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ์žฌ๋ฏธ์žˆ๋Š” ์ผ๋“ค๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐฐ์—ด์˜ ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์›ํ•˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•œ๋‹ค๋“ ๊ฐ€, ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ์—ด ์†์—์„œ ์ฐพ์•„๋‚ด๋Š” ์ž‘์—…๋“ค์„!

 

<Array ํด๋ž˜์Šค์˜ ์ฃผ์š” ๋ฉ”์†Œ๋“œ์™€ ํ”„๋กœํผํ‹ฐ๋“ค>

๋ถ„๋ฅ˜ ์ด๋ฆ„ ์„ค๋ช…
์ •์  ๋ฉ”์†Œ๋“œ Sort() ๋ฐฐ์—ด์„ ์ •๋ ฌ
BinarySearch<T>() ์ด์ง„ํƒ์ƒ‰ ์ˆ˜ํ–‰
IndexOf() ๋ฐฐ์—ด์—์„œ ์ฐพ๊ณ ์ž ํ•˜๋Š” ํŠน์ • ๋ฐ์ดํ„ฐ์˜ ์ธ๋ฑ์Šค ๋ฐ˜ํ™˜
TrueForAll<T>() ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ์ง€์ •ํ•œ ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š”์ง€์˜ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜
FindIndex<T>() ๋ฐฐ์—ด์—์„œ ์ง€์ •ํ•œ ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š” ์ฒซ๋ฒˆ์งธ ์š”์†Œ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜. IndexOf() ๋ฉ”์†Œ๋“œ๊ฐ€ ํŠน์ • ๊ฐ’์„ ์ฐพ๋Š”๋ฐ ๋น„ํ•ด, FindIndex<T>() ๋ฉ”์†Œ๋“œ๋Š” ์ง€์ •ํ•œ ์กฐ๊ฑด์— ๋ฐ”ํƒ•ํ•˜์—ฌ ๊ฐ’์„ ์ฐพ์Œ
Resize<T>() ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์žฌ์กฐ์ •
Clear() ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ดˆ๊ธฐํ™”. ๋ฐฐ์—ด์ด ์ˆซ์ž ํ˜•์‹ ๊ธฐ๋ฐ˜์ด๋ฉด 0์œผ๋กœ, ๋…ผ๋ฆฌ ํ˜•์‹ ๊ธฐ๋ฐ˜์ด๋ฉด false๋กœ, ์ฐธ์กฐ ํ˜•์‹ ๊ธฐ๋ฐ˜์ด๋ฉด null๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
ForEach<T>() ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ์— ๋Œ€ํ•ด ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ํ•œ๋‹ค
Copy<T>() ๋ฐฐ์—ด์˜ ์ผ๋ถ€๋ฅผ ๋‹ค๋ฅธ ๋ฐฐ์—ด์— ๋ณต์‚ฌ
์ธ์Šคํ„ด์Šค
๋ฉ”์†Œ๋“œ
GetLength() ๋ฐฐ์—ด์—์„œ ์ง€์ •ํ•œ ์ฐจ์›์˜ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜(๋‹ค์ฐจ์› ๋ฐฐ์—ด์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋จ!)
ํ”„๋กœํผํ‹ฐ Length ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜
Rank ๋ฐฐ์—ด์˜ ์ฐจ์›์„ ๋ฐ˜ํ™˜

๋’ค์— <T>๋ฅผ ๋ถ™์ด๊ณ  ๋‹ค๋‹ˆ๋Š” ๋ฉ”์†Œ๋“œ๋“ค์—์„œ <T>๋Š” ํ˜•์‹ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ผ๊ณ  ํ•˜๋Š”๋ฐ,

์ด๋“ค ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ T ๋Œ€์‹  ๋ฐฐ์—ด์˜ ๊ธฐ๋ฐ˜ ์ž๋ฃŒํ˜•์„ ์ธ์ˆ˜๋กœ ์ž…๋ ฅํ•ด์ฃผ๋ฉด

์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•ด๋‹น ํ˜•์‹์— ๋งž์ถฐ ๋™์ž‘ํ•˜๊ฒŒ๋” ๋ฉ”์†Œ๋“œ๋ฅผ ์ปดํŒŒ์ผํ•œ๋‹ค.(์ผ๋ฐ˜ํ™”)

 

<Array ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ์™€ ํ”„๋กœํผํ‹ฐ๋ฅผ ํ™œ์šฉํ•˜๋Š” ์˜ˆ์ œ>

using System;

namespace MoreOnArray
{

    class MainApp
    {
        private static bool CheckPassed(int score)
        {
            return score >= 60;
        }
        private static void Print(int value)
        {
            Console.Write($"์ถœ๋ ฅ๊ฐ’์€ {value} ");
        }
        static void Main(string[] args)
        {
            int[] scores = new int[] { 80, 74, 81, 90, 34 };
            foreach (var score in scores)
                Console.Write($"{score} ");
            Console.WriteLine();

            Array.Sort(scores);
            Array.ForEach<int>(scores, new Action<int>(Print));
            Console.WriteLine();

            Console.WriteLine($"Number of dimensions : {scores.Rank}");

            Console.WriteLine($"Binary Search : 81 is at + {Array.BinarySearch<int>(scores, 81)}");
            Console.WriteLine($"Linear Search : 90 is at + {Array.IndexOf(scores,90)}");
            Console.WriteLine($"Everyone passed ? : " + $"{Array.TrueForAll<int>(scores, CheckPassed)}");

            int index = Array.FindIndex<int>(scores, (score) => score < 60);
            //FindIndex ๋ฉ”์†Œ๋“œ๋Š” ํŠน์ • ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›๋Š”๋‹ค.
            //๋žŒ๋‹ค์‹ ํ™œ์šฉ

            scores[index] = 61;
            Console.WriteLine($"Everyone passed ? : " + $"{Array.TrueForAll<int>(scores, CheckPassed)}");
            Console.WriteLine("Old length of scores : "+$"{scores.GetLength(0)}");

            //5์˜€๋˜ ๋ฐฐ์—ด์˜ ์šฉ๋Ÿ‰์„ 10์œผ๋กœ ์žฌ์กฐ์ •
            Array.Resize<int>(ref scores, 10);
            Console.WriteLine($"New length of scores : {scores.Length}");

            //Action ๋Œ€๋ฆฌ์ž ํ™œ์šฉ
            Array.ForEach<int>(scores, new Action<int>(Print));
            Console.WriteLine();

            Array.Clear(scores, 3, 7);
            Array.ForEach<int>(scores, new Action<int>(Print));
            Console.WriteLine();

            int[] sliced = new int[3];
            Array.Copy(scores, 0,sliced,0,3); //scores ๋ฐฐ์—ด์˜ 0๋ฒˆ์งธ๋ถ€ํ„ฐ 3๊ฐœ ์š”์†Œ๋ฅผ sliced ๋ฐฐ์—ด์˜ 0๋ฒˆ์งธ~2๋ฒˆ์งธ ์š”์†Œ์— ์ฐจ๋ก€๋Œ€๋กœ ๋ณต์‚ฌํ•œ๋‹ค.
            Array.ForEach<int>(sliced, new Action<int>(Print));
            Console.WriteLine();
        }
    }
}

<์ถœ๋ ฅ ์ƒํƒœ>

 

80 74 81 90 34
์ถœ๋ ฅ๊ฐ’์€ 34 ์ถœ๋ ฅ๊ฐ’์€ 74 ์ถœ๋ ฅ๊ฐ’์€ 80 ์ถœ๋ ฅ๊ฐ’์€ 81 ์ถœ๋ ฅ๊ฐ’์€ 90
Number of dimensions : 1
Binary Search : 81 is at + 3
Linear Search : 90 is at + 4
Everyone passed ? : False
Everyone passed ? : True
Old length of scores : 5
New length of scores : 10
์ถœ๋ ฅ๊ฐ’์€ 61 ์ถœ๋ ฅ๊ฐ’์€ 74 ์ถœ๋ ฅ๊ฐ’์€ 80 ์ถœ๋ ฅ๊ฐ’์€ 81 ์ถœ๋ ฅ๊ฐ’์€ 90 ์ถœ๋ ฅ๊ฐ’์€ 0 ์ถœ๋ ฅ๊ฐ’์€ 0 ์ถœ๋ ฅ๊ฐ’์€ 0 ์ถœ๋ ฅ๊ฐ’์€ 0 ์ถœ๋ ฅ๊ฐ’์€ 0
์ถœ๋ ฅ๊ฐ’์€ 61 ์ถœ๋ ฅ๊ฐ’์€ 74 ์ถœ๋ ฅ๊ฐ’์€ 80 ์ถœ๋ ฅ๊ฐ’์€ 0 ์ถœ๋ ฅ๊ฐ’์€ 0 ์ถœ๋ ฅ๊ฐ’์€ 0 ์ถœ๋ ฅ๊ฐ’์€ 0 ์ถœ๋ ฅ๊ฐ’์€ 0 ์ถœ๋ ฅ๊ฐ’์€ 0 ์ถœ๋ ฅ๊ฐ’์€ 0
์ถœ๋ ฅ๊ฐ’์€ 61 ์ถœ๋ ฅ๊ฐ’์€ 74 ์ถœ๋ ฅ๊ฐ’์€ 80

 

728x90

'C# > ์ด๊ฒƒ์ด C#์ด๋‹ค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

50. 2์ฐจ์› ๋ฐฐ์—ด  (0) 2022.02.24
49. Array๋กœ ์•ŒํŒŒ๋ฒณ ์ถœ๋ ฅํ•˜๋Š” ์˜ˆ์ œ  (0) 2022.02.24
47. ๋ฐฐ์—ด์“ฐ๋Š” ์ด์œ , ๋ฐฐ์—ด ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ• 3๊ฐ€์ง€  (0) 2022.02.24
46. ์ฑ•ํ„ฐ9 ์—ฐ์Šต๋ฌธ์ œ  (0) 2022.02.24
45. ์ถ”์ƒํด๋ž˜์Šค์˜ ํ”„๋กœํผํ‹ฐ  (0) 2022.02.24
    'C#/์ด๊ฒƒ์ด C#์ด๋‹ค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • 50. 2์ฐจ์› ๋ฐฐ์—ด
    • 49. Array๋กœ ์•ŒํŒŒ๋ฒณ ์ถœ๋ ฅํ•˜๋Š” ์˜ˆ์ œ
    • 47. ๋ฐฐ์—ด์“ฐ๋Š” ์ด์œ , ๋ฐฐ์—ด ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ• 3๊ฐ€์ง€
    • 46. ์ฑ•ํ„ฐ9 ์—ฐ์Šต๋ฌธ์ œ
    Rainbow๐ŸŒˆCoder
    Rainbow๐ŸŒˆCoder
    ๋ชฐ๋ผ๋„ ๊ฒฐ๊ตญ์€ ์•„๋Š” ๊ฐœ๋ฐœ์ž, ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ์ด ๋˜๊ธฐ ์œ„ํ•œ ๋งค์ผ์˜ ํ•œ๊ฑธ์Œ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”