C#에서 둘 이상의 리스트 연결하기C#에서 여러 개의 리스트(List)를 하나로 합치려면 Concat() 메서드를 사용하면 됩니다. Concat 메서드는 System.Linq 네임스페이스에 포함되어 있으며, 두 시퀀스를 순서대로 이어 붙인 새로운 시퀀스를 반환합니다.세 개의 리스트 선언먼저 연결할 세 개의 리스트를 준비합니다.// 세 개의 리스트 var list1 = new List<int>{3, 4}; var list2 = new List<int>{1, 2, 3}; var list3 = new List<
C#에서 두 개 이상의 리스트(List) 사이에 존재하는 공통 값을 찾고 싶다면, LINQ에서 제공하는 Intersect() 메서드를 활용하면 됩니다. 이 메서드는 두 컬렉션을 비교하여 양쪽 모두에 포함된 요소만 추려서 반환해 줍니다.1. 리스트 생성하기먼저 공통 값을 비교할 두 개의 리스트를 만들어 보겠습니다.// 두 개의 리스트 선언 var list1 = new List<int>{3, 4}; var list2 = new List<int>{1, 2, 3};위 코드에서 list1은 3과 4를, list2는 1,
C#에서 두 개 이상의 리스트를 하나로 합치려면 Concat 메서드를 사용하면 됩니다. Concat은 LINQ에서 제공하는 확장 메서드로, 두 시퀀스를 순서대로 이어붙인 새로운 시퀀스를 반환합니다.리스트 준비하기먼저 연결할 두 개의 리스트를 생성합니다.var list1 = new List<int>{12, 40}; var list2 = new List<int>{98, 122, 199, 230};Concat 메서드 사용법Concat 메서드는 다음과 같이 간단하게 사용할 수 있습니다.var res = list1.Co
C#의 Union 메서드는 LINQ에서 제공하는 집합 연산자 중 하나로, 두 개의 시퀀스(리스트)를 병합하면서 중복된 요소를 제거하고 고유한(unique) 요소만 반환합니다. 이 메서드는 수학의 합집합 개념과 동일하게 작동합니다.Union 메서드의 기본 개념Union 메서드는 기본 비교자(Default Equality Comparer)를 사용하여 요소를 비교하며, 두 리스트에 공통으로 존재하는 중복 값은 한 번만 결과에 포함됩니다.먼저 예제에 사용할 두 개의 리스트를 선언해 보겠습니다.var list1 = new List<in
C#의 UnionWith 메서드를 사용하면 두 컬렉션에서 중복을 제거한 고유한 요소들, 즉 합집합(union)을 손쉽게 구할 수 있습니다. 이 메서드는 HashSet 클래스에서 제공되며, 다른 컬렉션의 요소들을 현재 집합에 병합하면서 자동으로 중복 요소를 걸러줍니다.예제 데이터 준비먼저 예제에 사용할 두 개의 Dictionary를 만들어 보겠습니다.Dictionary<string, int> dict1 = new Dictionary<string, int>(); dict1.Add(pencil, 1); dict1.A
C#에서 두 개의 정렬된 배열 병합하기C#에서 두 개의 정렬된 배열을 하나로 합치는 작업은 List<T>를 활용하면 매우 간단하게 처리할 수 있습니다. 이 글에서는 두 배열의 요소를 번갈아 가며 새로운 배열로 병합하는 방법을 단계별로 살펴보겠습니다.1단계: 두 개의 정렬된 배열 준비먼저 병합할 두 개의 정렬된 배열을 선언합니다.int[] array1 = { 1, 2 };int[] array2 = { 3, 4 };2단계: 리스트에 요소를 추가하며 병합두 배열의 요소를 List<int>에 번갈아 추가하여 하나의 리
C#에서 문자열을 회전하는 것은 Substring() 메서드를 활용하면 간단하게 구현할 수 있습니다. 이 글에서는 문자열의 일부 문자를 앞뒤로 이동시켜 회전하는 방법을 예제와 함께 살펴보겠습니다.문자열 준비하기먼저 회전시킬 문자열을 하나 정의합니다.var str = welcome;Substring()으로 문자열 회전하기문자열의 일부 문자만 회전시키고 싶다면 Substring() 메서드를 사용하면 됩니다. 아래 예제에서는 앞의 2개 문자를 뒤로 보내는 회전을 수행합니다.Substring(1, str.Length - 1)은 인덱스 1부
C#에서는 string.Format() 메서드를 활용하면 문자열의 내용을 손쉽게 서식화하고 패딩(padding)을 추가할 수 있습니다. 패딩을 활용하면 표 형태의 출력이나 정렬된 데이터를 깔끔하게 표현할 수 있어 콘솔 애플리케이션 개발 시 특히 유용합니다.패딩 서식 지정자 이해하기패딩을 추가하려면 복합 서식 문자열(composite format string) 안에 쉼표와 함께 숫자를 지정합니다. 양수는 오른쪽 정렬, 음수는 왼쪽 정렬을 의미합니다.const string format = {0,-5} {1,5};위 예제에서 {0,-5}
C#에서는 String.Format 메서드를 사용하여 문자열에 % 기호 형식을 손쉽게 적용할 수 있습니다. String.Format의 표준 서식 지정자에는 백분율(%)도 포함되어 있습니다. 이 지정자는 값에 자동으로 100을 곱한 뒤, 결과 값 뒤에 백분율 기호(%)를 붙여 출력합니다. 예를 들어 다음과 같은 값이 있다고 가정해 보겠습니다. double val = .322; 이제 String.Format을 사용하여 이 값을 백분율 형식으로 변환합니다. string.Format(string = {0:0.0%}, val); 여기서 {
C#에서는 string.Format 메서드의 정렬(alignment) 지정자를 사용하면 문자열에 원하는 폭만큼 패딩(공백 여백)을 손쉽게 추가할 수 있습니다. 반복문이나 복잡한 문자열 연산 없이 서식 문자열 하나로 깔끔하게 처리할 수 있다는 점이 큰 장점입니다. 정렬 지정자 기본 문법 복합 서식 문자열에서 패딩은 중괄호 안에 인덱스와 정렬 폭을 쉼표로 구분하여 지정합니다. {인덱스,정렬 폭} 양수 폭(예: {0,10}) → 필드 안에서 오른쪽 정렬, 남는 공간은 왼쪽에 공백으로 채워집니다. 음수 폭(예: {0,-10}) → 필드
C#에서는 ToString() 메서드를 활용하면 숫자 값을 원하는 형식의 문자열로 손쉽게 변환할 수 있습니다. 특히 자릿수를 맞추거나 앞자리를 0으로 채워야 할 때 매우 유용합니다.기본 사용법먼저 서식을 지정할 값을 설정합니다.int value = 55;이제 이 정수를 세 자리로 표현하고 싶다면, ToString에 서식 지정자 000을 전달합니다. 여기서 0은 해당 자리에 숫자가 없으면 0으로 채우라는 의미입니다.value.ToString(000);전체 예제 코드using System; public class Program {
C#에서 문자열에 포함된 특정 문자들을 서로 맞바꾸고 싶다면 LINQ의 Select 메서드를 활용하는 것이 가장 간단하고 안전한 방법입니다.문자 교환의 기본 원리먼저 다음과 같은 문자열이 있다고 가정해 보겠습니다.string str = "PQRQP";이 문자열에서 모든 P는 Q로, Q는 P로 교환하려면 Select 메서드와 삼항 연산자(조건 연산자)를 함께 사용하면 됩니다.str = new string(str.Select(a => a == P ? Q : (a == Q ? P : a)).ToArray());Se
C#에서 1차원 배열을 선언한 후, 특정 위치(인덱스)에 있는 요소에 새로운 값을 할당하는 방법은 매우 간단합니다. 배열 이름 뒤에 대괄호([])를 붙이고 그 안에 원하는 인덱스 번호를 지정한 뒤, 대입 연산자(=)를 사용하여 새 값을 넣으면 됩니다.배열 선언하기먼저 다음과 같이 정수형 1차원 배열을 선언하고 초기화합니다.int[] p = new int[] {55, 66, 88, 99, 111, 122, 133};특정 인덱스에 값 설정하기예를 들어, 인덱스 2에 해당하는 요소의 값을 77로 변경하려면 아래와 같이 작성합니다.p[2]
C#에서 List<T> 컬렉션을 배열로 변환하려면 ToArray() 메서드를 사용하면 됩니다. 이 메서드는 리스트에 담긴 모든 요소를 새로운 배열에 복사하여 반환해 주므로, 몇 줄의 코드만으로 간단하게 변환 작업을 처리할 수 있습니다. 1. 리스트 컬렉션 생성하기 먼저 문자열 타입의 리스트 컬렉션을 선언하고 요소를 추가합니다. List<string> myList = new List<string>(); myList.Add(RedHat); myList.Add(Ubuntu); 2. ToArray()
Environment.Exit() 메서드 Environment.Exit() 메서드는 현재 프로세스를 즉시 종료하고 운영체제에 종료 코드를 반환합니다. Environment.Exit(exitCode); 종료 코드(exitCode)는 다음과 같이 사용합니다: 0 (성공): 프로세스가 정상적으로 완료되었음을 나타냅니다. 0이 아닌 값 (오류): 오류 유형을 구분하기 위해 사용합니다. 예를 들어: Environment.Exit(1) - 요청한 파일이 존재하지 않음 Environment.Exit(2) - 파일 형식이 올바르지 않음 A
C#에서 문자열을 다룰 때 가장 널리 사용되는 와일드카드 문자는 별표(*)입니다. 별표는 문자열 내에서 0개 이상의 임의의 문자를 의미하며, 정규식(Regex)과 함께 사용하면 원하는 패턴의 단어나 문장을 손쉽게 검색할 수 있습니다.와일드카드 패턴 예시다음 예제에서는 별표 역할을 하는 \S* 패턴을 사용하여, t로 시작하고 s로 끝나는 단어를 문자열에서 찾아보겠습니다.@\bt\S*s\b여기서 각 요소의 의미는 다음과 같습니다.\b: 단어 경계(word boundary)를 나타냅니다.t: 단어의 시작 문자입니다.\S*: 공백을 제외한
C# 개발을 하다 보면 관리 코드(Managed Code)와 비관리 코드(Unmanaged Code)라는 용어를 자주 접하게 됩니다. 이 두 가지 코드의 차이를 이해하는 것은 .NET 환경에서 안정적이고 효율적인 프로그램을 작성하는 데 매우 중요합니다. 이번 글에서는 두 코드의 개념과 특징, 그리고 포인터를 사용하는 unsafe 코드 예제까지 자세히 알아보겠습니다.비관리 코드(Unmanaged Code)란?CLR(Common Language Runtime)의 제어를 받지 않는 애플리케이션을 비관리 코드라고 합니다.비관리 코드 또는
C# 스레드 안전 컬렉션이란?.NET Framework 4부터 System.Collections.Concurrent 네임스페이스가 공식적으로 도입되었습니다. 이 네임스페이스에는 스레드로부터 안전(thread-safe)하고 확장성(scalability)이 뛰어난 다양한 컬렉션 클래스들이 포함되어 있습니다.이러한 컬렉션들은 한 번에 여러 스레드가 동시에 접근하고 조작할 수 있도록 설계되었기 때문에 동시성 컬렉션(Concurrent Collections)이라고 부릅니다. 일반적인 List<T>, Dictionary<TKe
C#으로 디렉터리 내 파일 검색하기C#에서는 DirectoryInfo 클래스를 활용하면 특정 디렉터리에 있는 파일 목록을 손쉽게 검색하고, 각 파일의 이름과 크기 등의 정보를 확인할 수 있습니다. 이번 글에서는 실제 예제 코드를 통해 파일 검색 과정을 단계별로 살펴보겠습니다.전체 예제 코드디렉터리의 파일 목록을 검색하려면 다음과 같은 코드를 실행해 보세요.using System; using System.IO; namespace Demo { class Program { static void Main(string
C#은 기본적으로 메모리 안전성을 보장하는 언어이지만, 포인터를 직접 다루는 등의 저수준 작업이 필요할 때는 안전하지 않은(unsafe) 코드를 사용해야 합니다. 이러한 코드를 컴파일하려면 별도의 설정이 필요하며, 방법은 크게 두 가지입니다.1. 명령줄 컴파일러에서 /unsafe 옵션 사용하기명령줄 컴파일러(csc)로 unsafe 코드를 컴파일하려면 /unsafe 명령줄 스위치를 지정해야 합니다.예를 들어, unsafe 코드가 포함된 one.cs라는 프로그램을 컴파일하려면 명령줄에서 다음과 같이 입력합니다.csc /unsafe on