본문 바로가기

C#60

구조체를 List<T> 에 추가하는 방법들 동일한 구조체를 여러 개 나열할 경우, 구조체 배열을 사용하는 방법도 있겠지만, 여기서는 List를 사용하는 방법에 대해 다뤄보겠습니다. List에 값을 추가할 때는 크게 두 가지 방식이 있습니다.1. Add() 함수를 이용해 데이터를 하나씩 추가하는 방식2. 선언과 동시에 데이터를 중괄호 { } 안에 나열하는 방식그 외에 LINQ를 이용한 방식도 있지만, 여기서는 다루지 않겠습니다.(솔직히 제가 잘 쓰지를 않아서 모릅니다. 😅)어떤 방식이 더 좋다기보다는, 상황에 맞게 또는 선호하는 코드 스타일에 따라 선택하면 됩니다. 대표적인 초기화 방식1. List 를 new (); 로 생성한 후에, Add() 로 추가// new 로 List 를 생성List list = new List();// 생성된 list .. 2025. 7. 19.
foreach() 가 내부적으로 동작하는 방식 C#에서 foreach() 문은 아주 간편하게 컬렉션을 순회할 수 있도록 도와주는 문법입니다. 하지만 이 문법 뒤에는 실제로 어떤 일이 일어나는지, 내부적으로 어떤 코드가 실행되는지를 이해하면 C#의 컬렉션 처리 방식에 대해 훨씬 깊은 통찰을 얻을 수 있습니다. foreach 구문의 일반적인 형태string[] fruits = { "apple", "banana", "cherry" };foreach (string fruit in fruits){ Console.WriteLine(fruit);} 위 코드는 fruits 배열의 각 요소를 순회하며 출력합니다. 매우 간단하지만, 내부에서는 꽤 복잡한 일들이 벌어지고 있습니다. foreach의 내부 동작 (while문으로 변환) string[] fruits .. 2025. 7. 15.
Sort() 를 보다 깊이있게 이해하기 C# 에서 정렬할 땐 당연히 Sort()를 쓴다. 그런데 그 안에서는 무슨 일이 일어날까? 이번 글에서는 Sort() 함수의 원형부터, 비교 기준을 전달하는 방식, 그리고 구조체 배열을 정렬하는 방법까지 하나씩 짚어보며 정렬의 구조를 제대로 파헤쳐 보겠습니다. Sort() 함수의 원형public static void Sort(T[] array, Comparison comparison); public static정적(static) 메서드이기 때문에, 어디서든 인스턴스없이 접근이 가능합니다. Array.Sort() T [ ] array정렬할 배열입니다.제네릭 타입 이기 때문에 int[], string[], Item[] 등 어떤 자료형이건 상관이 없습니다. Comparison comparison 비교 .. 2025. 7. 10.
배열과 리스트를 정렬하는 방법 C# 에는 배열(Array)과 리스트(List)를 정렬할 수 있는 다양한 내장 메서드들이 제공됩니다.이번 글에서는 배열과 리스트, 그리고 사용자 정의 정렬까지 정리해보겠습니다. 배열에서의 정렬배열을 정렬할 때는 Array.Sort() 메서드를 사용합니다.int[] numbers = { 5, 2, 9, 1 };Array.Sort(numbers);// 출력: 1, 2, 5, 9Console.WriteLine(string.Join(", ", numbers)); • 아무 옵션 없이 쓰면 기본 오름차순으로 정렬됩니다.• 내부적으로는 퀵 정렬, 힙 정렬, 삽입 정렬 등을 데이터 양과 형식에 따라 자동으로 혼합 사용합니다. 내림차순 정렬은 어떻게?정렬 기준을 직접 지정하고 싶을 땐, Sort() 함수 괄호 안에.. 2025. 7. 10.
람다를 이용해 버블 정렬 구현하기 C# 에는 Array.Sort() 나 List.Sort() 같은 기본 정렬 함수가 제공되지만, 정렬 알고리즘을 직접 구현하면서 람다식이 얼마나 강력한 도구인지 체감해볼 수 있습니다. 이번 글에서는 람다식을 이용하여 유연한 방식의 버블 정렬을 직접 구현해보겠습니다. 버블 정렬이란?가장 간단한 정렬 알고리즘 중 하나로, 인접한 두 값을 비교해서 순서를 바꾸는 것을 반복합니다.int[] arr = { 5, 3, 8, 1 };for (int i = 0; i arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } }} 하지만 이 방법은 비교 방.. 2025. 7. 10.
C#에서 튜플(Tuple)이란? 튜플은 C# 7.0 부터 지원하는 여러 값 (최대 7개) 을 한 번에 묶어서 저장할 수 있는 구조입니다.최대 7개의 값을 다룰 수 있으며, 별도의 타입 정의 없이 간단하게 여러 값을 하나로 다룰 수 있다는 것이 특징입니다. ValueTuple 은 구조체 // 실제 소스 일부 (System.ValueTuple.cs)public struct ValueTuple{ public T1 Item1; public T2 Item2; // …} 코드에서 보면 알 수 있듯이, 내부는 단순한 구조체 입니다. 그럼 언제, 어떻게 쓰이는지 알아보겠습니다. 기본 사용법튜플은 직접 ValueTuple로 선언할 수도 있고, 간편하게 var를 사용할 수도 있습니다.// 1. 명시적 타입 지정ValueTuple stu.. 2025. 7. 9.