C#에서는 LINQ의 Where 절과 람다 식(조건자)을 조합하면 배열이나 컬렉션에서 특정 조건을 만족하는 요소만 손쉽게 추출할 수 있습니다. 이번 글에서는 정수 배열에서 50 이상인 값만 필터링하는 예제를 단계별로 살펴보겠습니다.1. 배열 선언하기먼저 필터링할 대상이 되는 배열을 선언합니다.int[] arr = { 40, 42, 12, 83, 75, 40, 95 };2. Where 절과 조건자로 필터링배열에 AsQueryable()을 호출한 뒤 Where 절에 람다 식 형태의 조건자를 전달하면, 조건을 만족하는 요소들만 담은 시퀀
C#에서는 Convert.ToDecimal() 메서드를 사용하여 지정된 값을 10진수(decimal) 숫자로 손쉽게 변환할 수 있습니다. 이 메서드는 문자열, 정수, 실수 등 다양한 형식의 값을 decimal 타입으로 변환하며, 특히 사용자 입력이나 외부 데이터를 정밀한 수치 계산에 활용할 때 유용합니다.변환할 문자열 준비하기먼저 변환할 문자열이 하나 있다고 가정해 보겠습니다.string stringVal = 2,345.26;이제 Convert.ToDecimal() 메서드를 사용하여 이 문자열을 decimal 숫자로 변환해 보겠습니
C#에서는 여러 값을 하나의 단위로 묶어서 다룰 수 있는 튜플(Tuple)을 활용할 수 있습니다. 이 글에서는 튜플을 생성하고, 이를 메서드의 매개변수로 전달하여 내부 값들을 사용하는 방법을 알아보겠습니다.1. 튜플 생성하기먼저 Tuple.Create 메서드를 사용하여 세 개의 정수 값을 가진 튜플을 생성합니다.var tuple = Tuple.Create(100, 200, 300);이렇게 생성된 튜플은 Tuple<int, int, int> 타입이 되며, 각 요소는 Item1, Item2, Item3 속성으로 접근할 수 있
C#에서는 메서드가 여러 개의 값을 한 번에 반환해야 할 때 튜플(Tuple)을 활용할 수 있습니다. 이 글에서는 메서드를 호출하여 튜플을 생성하고 반환하는 방법을 예제와 함께 살펴보겠습니다.기본 개념먼저, 아래와 같이 메서드를 호출하여 튜플 변수를 생성합니다.var tuple = Show();위 문장은 다음과 같이 선언된 Show() 메서드를 호출합니다. 반환 타입은 5개의 int 값을 담는 튜플입니다.static Tuple<int, int, int, int, int> Show()메서드 내부에서는 Tuple.Create
C#에서 Decimal을 Int64(long)로 변환하기C#에서 decimal 타입의 값을 Int64(long)로 변환하려면 Convert.ToInt64() 메서드를 사용하면 됩니다.먼저 다음과 같은 decimal 변수가 있다고 가정해 보겠습니다.decimal d = 310.23m;이 값을 Int64로 변환하려면 Convert.ToInt64() 메서드에 해당 변수를 전달하기만 하면 됩니다.long res;res = Convert.ToInt64(d);그럼 실제 동작 과정을 확인할 수 있는 전체 예제를 살펴보겠습니다.예제using Sy
C#에서 배열의 첫 번째 요소를 가져오고 싶을 때는 LINQ에서 제공하는 First() 메서드를 사용하면 간단하게 해결할 수 있습니다. 이번 글에서는 double형 배열을 예제로 사용해 첫 번째 요소를 출력하는 전체 과정을 살펴보겠습니다.예제 배열 준비하기먼저 아래와 같이 실수(double) 값들을 담은 배열을 선언합니다.double[] myArr = {20.5, 35.6, 45.7, 55.6, 79.7};First() 메서드로 첫 번째 요소 가져오기배열의 첫 번째 요소를 얻으려면 AsQueryable() 메서드로 배열을 IQuer
C#에서 리스트(List)에 담긴 값들 중 최솟값과 최댓값을 구하는 방법을 알아보겠습니다. LINQ에서 제공하는 Min()과 Max() 메서드를 사용하면 단 한 줄의 코드로 손쉽게 처리할 수 있습니다.리스트 설정하기먼저 숫자 요소를 담은 리스트를 생성합니다.List<long> list = new List<long> { 150, 300, 400, 350, 450, 550, 600 };Min() 및 Max() 메서드리스트에서 가장 작은 요소를 가져오려면 Min() 메서드를 사용합니다.list.AsQueryable(
C#에서 시퀀스에 포함된 요소의 총 개수를 64비트 부호 있는 정수(long) 형태로 반환하려면 LINQ의 LongCount 메서드를 사용할 수 있습니다. 일반적인 Count 메서드와 달리 LongCount는 int 범위를 초과하는 대용량 컬렉션도 안전하게 처리할 수 있다는 장점이 있습니다.1. 문자열 배열 선언먼저 예제에 사용할 문자열 배열을 선언합니다.string[] num = { One, Two, Three, Four, Five};2. LongCount 메서드로 요소 개수 구하기배열을 AsQueryable()로 변환한 뒤 Lo
C#에서 값 튜플(ValueTuple)은 기존 Tuple 클래스를 값 형식(value type)으로 표현한 것입니다. 참조 형식인 일반 Tuple과 달리 스택에 할당되어 성능상 이점이 있으며, C# 7.0부터 도입되었습니다.System.ValueTuple 패키지 설치값 튜플을 사용하려면 System.ValueTuple 패키지가 필요합니다. .NET Framework 4.7 이상 또는 .NET Core 2.0 이상에서는 기본으로 포함되어 있지만, 하위 버전에서는 NuGet 패키지를 직접 추가해야 합니다.NuGet 패키지 추가 방법Vi
C#에서 일반 날짜 긴 시간(General Date Long Time) 표준 형식 지정자인 G는 짧은 날짜 패턴(d)과 긴 시간 패턴(T)을 공백으로 구분하여 결합한 형식입니다. 이 형식을 사용하면 날짜와 시간을 한 번에 간결하고 읽기 쉬운 형태로 출력할 수 있습니다.G 형식 지정자의 기본 구조G 형식 지정자는 다음과 같은 구조로 날짜와 시간을 표현합니다.날짜 부분: 짧은 날짜 형식(예: 01/03/2018)시간 부분: 시, 분, 초를 포함하는 긴 시간 형식(예: 03:45:20)DateTime 객체 생성하기먼저 형식을 적용할 Da
C#에서는 개체 이니셜라이저(Object Initializer)를 사용하여 클래스의 객체를 간편하게 초기화할 수 있습니다.개체 이니셜라이저를 활용하면 new 키워드로 객체를 생성하는 시점에 중괄호({}) 안에서 필드나 속성에 바로 값을 할당할 수 있습니다. 별도의 생성자를 여러 개 오버로딩하지 않아도 되기 때문에 코드가 한결 간결해집니다.아래 예제에서는 Employee 객체를 생성하면서 중괄호를 이용해 여러 속성 값을 동시에 할당하고 있습니다.Employee empDetails = new Employee() { EID = 1
C#에서 Month(월) 표준 형식 지정자인 M 또는 m은 사용자 지정 날짜 및 시간 형식 문자열을 나타냅니다.이 형식 문자열은 현재 문화권(culture)의 DateTimeFormatInfo.MonthDayPattern 속성 값에 따라 결정되며, 기본적으로 다음과 같은 사용자 지정 형식 문자열로 정의됩니다.MMMM dd여기서 MMMM은 월의 전체 이름(예: June, June)을, dd는 일(day)을 두 자리 숫자로 표시합니다.예제아래 예제에서는 CultureInfo.CreateSpecificCulture(en-us)를 사용하여
C# 짧은 시간(t) 형식 지정자란?C#의 짧은 시간(short time) 형식 지정자 t는 날짜 정보는 제외하고 시간 부분만 간결하게 출력하는 표준 날짜 및 시간 형식 문자열입니다.이 지정자는 현재 문화권(culture)의 DateTimeFormatInfo.ShortTimePattern 속성에 정의된 패턴을 기반으로 동작합니다. 즉, 실행 환경의 문화권 설정에 따라 출력되는 시간 형식이 달라집니다.예를 들어, 영어(미국) 문화권(en-US)에서는 아래와 같은 사용자 지정 형식 문자열이 적용됩니다.HH:mm사용 예제다음 예제는 20
C# 컬렉션 이니셜라이저란?C#에서는 컬렉션 이니셜라이저(Collection Initializer) 구문을 사용하면 클래스 객체로 이루어진 컬렉션을 한 줄의 코드로 간결하게 생성하고 초기화할 수 있습니다. 이 문법은 내부적으로 컬렉션의 Add() 메서드를 자동으로 호출하기 때문에, 반복적인 Add 호출 코드를 작성할 필요가 없어 가독성과 생산성이 크게 향상됩니다.지금부터 Employee 객체를 예시로 컬렉션 초기화 과정을 단계별로 살펴보겠습니다.1단계: Employee 객체에 값 설정하기먼저 객체 초기자(Object Initiali
C# 액션(Action) 델리게이트란?C#의 액션(Action) 델리게이트는 값을 반환하지 않는 메서드, 즉 void 반환 타입을 가진 메서드를 참조할 때 사용하는 범용 델리게이트입니다. 별도의 커스텀 델리게이트를 선언할 필요 없이 제네릭 매개변수만 지정하면 바로 사용할 수 있어 코드가 간결해집니다.액션 델리게이트는 최대 16개까지 입력 매개변수를 받을 수 있으며, 항상 void를 반환한다는 점이 특징입니다. 만약 반환값이 필요하다면 Func 델리게이트를 사용하는 것이 적합합니다.액션 델리게이트 선언 방법액션 델리게이트는 다음과 같
C# LINQ에서 여러 Where 절 활용하기C#에서는 Where 절을 사용해 컬렉션을 간편하게 필터링할 수 있습니다. 특히 LINQ 쿼리 식 하나에 여러 개의 where 절을 연달아 작성하면, 각 조건이 순차적으로 적용되면서 코드의 의도를 더욱 명확하게 드러낼 수 있습니다.1. 예제용 컬렉션 준비먼저 직원(Employee) 객체들로 구성된 리스트를 생성합니다.IList<Employee> employee = new List<Employee>() { new Employe
C#에서 IsDefined 메서드는 지정된 열거형(enum)에 특정 정수 값 또는 해당 값의 이름(문자열)이 정의되어 있는지 확인하는 데 사용됩니다. 값이 존재하면 true를, 존재하지 않으면 false를 반환합니다.다음과 같은 열거형이 있다고 가정해 보겠습니다.enum Subjects { Maths, Science, English, Economics };각 멤버에 별도의 값을 지정하지 않으면 기본적으로 0부터 순서대로 초기화됩니다.Maths = 0, Science = 1, English = 2, Economics = 3따라서 Is
C#에서는 int.Parse 메서드를 사용하여 숫자 형태의 문자열을 정수(int)로 손쉽게 변환할 수 있습니다. 다만, 변환할 수 없는 문자열이 전달될 경우 int.Parse 메서드는 예외(Exception)를 발생시킨다는 점에 유의해야 합니다. 기본 사용법 먼저 숫자가 문자열 형태로 저장되어 있다고 가정해 보겠습니다. string myStr = "200"; 이 문자열을 정수로 변환하려면 int.Parse() 메서드를 호출하기만 하면 됩니다. 호출 즉시 문자열이 정수 값으로 변환됩니다. int.Parse(myStr
OfType() 메서드는 컬렉션의 각 요소를 지정된 타입을 기준으로 필터링할 때 사용하는 LINQ 확장 메서드입니다. 특히 IList, ArrayList처럼 다양한 타입의 요소가 섞여 있는 비제네릭 컬렉션에서 원하는 타입의 값만 깔끔하게 추출할 수 있어 매우 유용합니다. OfType() 메서드란? OfType<T>()는 컬렉션을 순회하면서 T 타입과 호환되는 요소만 골라내어 새로운 시퀀스로 반환합니다. 타입이 일치하지 않는 요소는 예외를 발생시키지 않고 자동으로 제외되기 때문에, 혼합 타입 컬렉션을 안전하게 처리할 수
C# LINQ Where 메서드란?LINQ의 Where 메서드는 배열이나 컬렉션에서 지정한 조건자(predicate)를 만족하는 요소만 골라내는 필터링 메서드입니다. 조건자는 각 요소를 평가하는 람다 식으로 전달되며, 조건이 참(true)인 요소만 최종 결과에 포함됩니다.아래 예제에서는 조건자가 70 이상인 요소를 검사하도록 작성했습니다.Where((n, index) => n >= 70);여기서 람다 식은 두 개의 매개변수를 받습니다. 첫 번째 n은 현재 요소의 값, 두 번째 index는 해당 요소의 인덱스를 나타냅니다.