C#에서 시간 간격을 다룰 때 시간이 전혀 없는 상태, 즉 00:00:00을 정확하게 표현해야 하는 경우가 있습니다. 이럴 때 사용하는 것이 바로 TimeSpan.Zero입니다.TimeSpan.Zero란?TimeSpan.Zero는 TimeSpan 구조체가 제공하는 정적 필드로, 길이가 0인 시간 간격을 나타냅니다. 즉, 다음과 같은 값과 동일합니다.00:00:00TimeSpan 객체 선언하기먼저 TimeSpan 타입의 객체를 선언합니다.TimeSpan ts;그다음 TimeSpan.Zero를 할당하면 시간 없음 상태를 표현할 수 있습
C#에서는 TimeSpan 값을 hh:mm:ss 형식으로 손쉽게 출력할 수 있습니다. 이 글에서는 사용자 지정 형식 지정자를 활용해 TimeSpan 객체를 원하는 형태로 포맷하는 방법을 예제와 함께 살펴보겠습니다.1. TimeSpan 객체 생성먼저 시, 분, 초를 인수로 전달하여 TimeSpan 객체를 생성합니다. 아래 코드는 9시간 15분 30초를 나타냅니다.TimeSpan ts = new TimeSpan(9, 15, 30);2. 사용자 지정 형식 지정자TimeSpan을 hh:mm:ss 형식으로 지정하려면 다음과 같은 형식 문자열
C#의 Stopwatch 클래스는 코드 실행에 소요된 경과 시간을 정밀하게 측정하기 위한 도구입니다. 특정 함수나 알고리즘이 실행되는 데 걸리는 시간을 계산할 때 유용하게 활용되며, System.Diagnostics 네임스페이스에 포함되어 있습니다. Stopwatch 시작하기 경과 시간을 측정하려면 먼저 스톱워치를 시작해야 합니다. StartNew() 메서드를 사용하면 스톱워치 인스턴스를 생성하는 동시에 측정이 바로 시작됩니다. var sw = Stopwatch.StartNew(); 경과 틱(Ticks) 가져오기 스톱워치가 시작된
C#에서 타이머 정보를 0으로 초기화하고 싶다면 Stopwatch 클래스의 Restart() 메서드를 사용하면 됩니다. 이 메서드는 경과 시간을 모두 지우고 타이머를 새로 시작하는 역할을 합니다.Stopwatch 시작하기먼저 StartNew() 메서드로 스톱워치를 시작합니다.Stopwatch s = Stopwatch.StartNew();타이머를 0으로 초기화하기이후 Restart() 메서드를 호출하면 경과 시간이 0으로 초기화되며, 동시에 타이머가 다시 측정을 시작합니다.s.Restart();전체 예제 코드아래 코드는 스톱워치를 시
C#에서 두 날짜 사이의 차이를 구하려면 DateTime.Subtract 메서드를 사용하면 됩니다. 이 메서드는 두 DateTime 객체의 차이를 TimeSpan 객체로 반환하며, 이를 통해 일수, 시간, 분 등 다양한 단위로 차이를 확인할 수 있습니다.1. 날짜 설정하기먼저 비교할 두 개의 날짜를 설정합니다.DateTime date1 = new DateTime(2018, 8, 27); DateTime date2 = new DateTime(2018, 8, 28);2. Subtract 메서드로 차이 구하기Subtract 메서드를 호출
C#에서 DateTime 객체를 활용하면 연도를 원하는 자릿수와 형식으로 손쉽게 출력할 수 있습니다. 사용자 지정 날짜 및 시간 서식 지정자를 문자열로 전달하면 되는데, 연도에 해당하는 서식 지정자는 y입니다.DateTime 객체 설정먼저 현재 시각을 담은 DateTime 객체를 생성합니다.DateTime dt = DateTime.Now;연도 서식 지정자의 종류연도를 다양한 형식으로 가져오려면 아래와 같이 y의 개수를 조절하면 됩니다.dt.ToString(yy) dt.ToString(yyy) dt.ToString(yyyy) dt.T
C#에서 ulong 타입은 System.UInt64 타입에 대한 별칭(alias)으로, 부호 없는(unsigned) 64비트 정수를 나타냅니다. 음수를 저장할 수 없는 대신, 매우 큰 양의 정수 값을 다룰 수 있다는 것이 특징입니다.ulong 타입은 0부터 18,446,744,073,709,551,615까지의 범위를 표현할 수 있으며, 파일 크기, 고유 식별자(ID), 해시 값 등 큰 양수를 다뤄야 할 때 유용하게 사용됩니다.ulong 변수 선언하기ulong 타입 변수는 아래와 같이 간단하게 선언하고 초기화할 수 있습니다.ulong
ContainsKey는 C#의 Dictionary<TKey, TValue> 클래스에서 제공하는 메서드로, 특정 키가 딕셔너리에 존재하는지 여부를 확인할 때 사용합니다. 반환값은 bool 타입으로, 키가 존재하면 true, 존재하지 않으면 false를 반환합니다. 딕셔너리 선언 및 요소 추가 먼저 Dictionary를 선언하고 요소를 추가하는 방법부터 살펴보겠습니다. var dict = new Dictionary<string, int>() { {TV, 1}, {Home Theatre, 2},
C#에서 문자열을 bool로 변환하는 방법C#에서 문자열을 bool 타입으로 변환하려면 bool.Parse 메서드를 사용하면 됩니다. 이 메서드는 "true" 또는 "false"(대소문자 구분 없음) 형태의 문자열을 불리언 값으로 손쉽게 변환해 줍니다.1단계: 변환할 문자열 준비먼저 bool로 변환할 문자열 변수를 선언하고 값을 할당합니다.string str = "false";2단계: bool.Parse로 변환이제 bool.Parse() 메서드를 호출하여 문자열을 bool 값으로
C#에서 문자열(string)을 long 타입으로 변환하려면 long.Parse 메서드를 사용하면 됩니다.1. 문자열 준비하기먼저 숫자 형태의 문자열을 하나 선언합니다.string str = 6987646475767;2. long.Parse로 변환하기long.Parse 메서드에 문자열을 전달하면 long 타입의 값이 반환됩니다.long res = long.Parse(str);전체 예제 코드using System;using System.Linq;class Demo { static void Main() { string
C#의 KeyValuePair는 키(Key)와 값(Value) 두 개의 데이터를 하나의 쌍으로 묶어 저장할 수 있는 제네릭 구조체입니다. 특히 List<KeyValuePair<TKey, TValue>> 형태로 사용하면 Dictionary처럼 키-값 데이터를 다루면서도 삽입 순서를 그대로 유지할 수 있다는 장점이 있습니다.KeyValuePair 선언 및 요소 추가먼저 KeyValuePair 타입의 리스트를 생성하고 요소를 추가하는 기본 코드입니다.var myList = new List<KeyValuePair
C# 배열에서 최솟값 찾기C#에서 배열에 포함된 요소 중 가장 작은 값을 찾고 싶다면, System.Linq 네임스페이스가 제공하는 Min() 메서드를 사용하는 것이 가장 간단하고 효율적인 방법입니다. 별도의 반복문을 작성하지 않아도 한 줄의 코드로 최솟값을 손쉽게 구할 수 있습니다.1. 배열 선언하기먼저 최솟값을 찾을 정수형 배열을 하나 선언해 보겠습니다.int[] arr = { 5, 9, 2, 7 };2. Min() 메서드로 최솟값 구하기Min() 메서드는 배열 내의 모든 요소를 비교한 뒤 그중 가장 작은 값을 반환합니다. 호출
C#에서 KeyValuePair 컬렉션을 정렬하려면 Sort 메서드를 사용하면 됩니다. 람다 식과 함께 CompareTo() 메서드를 조합하면 Key 또는 Value를 기준으로 원하는 순서(오름차순/내림차순)대로 간단하게 정렬할 수 있습니다.1. 컬렉션 생성 및 요소 추가먼저 KeyValuePair 요소를 담을 List 컬렉션을 만들고 데이터를 추가합니다.var myList = new List<KeyValuePair<int, int>>(); // 요소 추가 myList.Add(new KeyValuePair&l
C# KeyNotFoundException이란?KeyNotFoundException은 Dictionary 컬렉션에서 존재하지 않는 키로 값을 조회하려고 할 때 발생하는 예외입니다. C#의 Dictionary<TKey, TValue>는 인덱서([])를 사용해 특정 키에 해당하는 값에 접근하는데, 이때 해당 키가 사전에 등록되어 있지 않으면 런타임에 이 예외가 던져집니다.예를 들어, 사전에 TV와 Laptop이라는 키만 저장되어 있는 상태에서 Pen Drive라는 키로 값을 읽으려고 하면 KeyNotFoundException
C#의 orderby 키워드는 LINQ 쿼리 식에서 컬렉션의 요소를 특정 기준에 따라 오름차순(ascending) 또는 내림차순(descending)으로 정렬할 때 사용합니다. 별도의 키워드 없이 orderby만 작성하면 기본값인 오름차순으로 정렬되며, 뒤에 descending 키워드를 붙이면 내림차순으로 정렬됩니다. 정렬 대상 리스트 만들기 먼저 정렬할 문자열 리스트를 준비합니다. List<string> myList = new List<string>(); myList.Add("truck"
C#에서 리스트(List)의 마지막 세 개 요소를 역순으로 출력하려면 LINQ의 Take() 메서드와 Reverse() 메서드를 함께 사용하면 됩니다. 두 메서드를 조합하면 별도의 반복문이나 인덱스 계산 없이 간결하게 원하는 결과를 얻을 수 있습니다. 리스트 선언 및 요소 추가 먼저 문자열 리스트를 선언하고 요소들을 추가합니다. List<string> myList = new List<string>(); myList.Add(One); myList.Add(Two); myList.Add(Three); myList.A
C#에서 드라이브의 여유 공간 확인하기C#에서 특정 드라이브의 남은 용량(여유 공간)을 확인하려면 System.IO 네임스페이스의 DriveInfo 클래스가 제공하는 AvailableFreeSpace와 TotalFreeSpace 속성을 사용하면 됩니다. 이 두 속성은 모두 바이트(byte) 단위의 long 값을 반환합니다.1. DriveInfo 객체 생성먼저 확인하고자 하는 드라이브 이름을 지정하여 DriveInfo 객체를 생성합니다.DriveInfo dInfo = new DriveInfo(D);위 코드처럼 드라이브 문자만 인수로
C#에서 특정 드라이브의 이름을 확인하고 싶다면 System.IO 네임스페이스에 포함된 DriveInfo 클래스를 사용하면 됩니다. 이 클래스는 드라이브의 이름뿐만 아니라 용량, 파일 시스템 형식 등 다양한 정보도 함께 제공합니다.DriveInfo 클래스란?DriveInfo는 컴퓨터에 연결된 물리적 또는 논리적 드라이브의 정보에 접근할 수 있게 해주는 클래스입니다. 생성자에 드라이브 문자를 전달하여 원하는 드라이브의 객체를 만들 수 있습니다.1단계: 대상 드라이브 지정하기먼저 이름을 표시하고 싶은 드라이브를 지정합니다. 아래 예제에
C#에서는 System.IO 네임스페이스에 포함된 DriveInfo 클래스의 RootDirectory 속성을 사용하면 특정 드라이브의 루트 디렉터리(최상위 디렉터리) 경로를 간단하게 확인할 수 있습니다.1. DriveInfo로 대상 드라이브 지정하기먼저 DriveInfo 객체를 생성하여 루트 디렉터리를 확인할 드라이브를 지정합니다. 아래 예제에서는 C 드라이브를 대상으로 설정했습니다.DriveInfo dInfo = new DriveInfo(C);2. RootDirectory 속성으로 루트 디렉터리 가져오기드라이브 정보 객체가 준비되
C#에서는 DriveFormat 속성을 사용하면 특정 드라이브의 파일 시스템 형식(포맷)을 간단하게 확인할 수 있습니다. 이 속성은 System.IO 네임스페이스의 DriveInfo 클래스를 통해 제공됩니다.DriveFormat 속성이란?DriveFormat 속성은 지정한 드라이브가 사용하는 파일 시스템의 이름을 문자열로 반환합니다. Windows 시스템에서 일반적으로 반환되는 값은 다음과 같습니다.NTFS — 최신 Windows에서 표준으로 사용되는 파일 시스템FAT32 — 구형 시스템이나 이동식 저장 장치에서 주로 사용되는 파일