C#190 [C#]List 거꾸로 뒤집기(Reverse) 이번 포스팅에서는 C#에서 List를 거꾸로 뒤집는 방법에 대해 설명합니다. .Net FrameWork에서 지원하는 라이브러리를 사용하는 방법과 라이브러리를 사용하지 않고 반복문을 사용하는 방법을 정리하였습니다. 목차 뒤집어진 List를 생성하는 Enumerable.Reverse() 메서드 기존 List를 변경하는 List.Reverse() 메서드 List.RemoveAt() 메서드 반복문을 이용 뒤집어진 List를 생성하는 Enumerable.Reverse() 메서드 Enumerable.Reverse() 메서드를 사용하면 원본 List 인스턴스를 변경하지 않고 새로운 List를 생성합니다. 다음 코드는 Reverse() 메서드를 사용하여 값이 뒤집어진 새로운 List 인스턴스를 생성합니다. List i.. C# 2021. 10. 3. [C#]배열 값 위치(index) 찾기(IndexOf, FindIndex) 이번 포스팅에서는 C#에서 배열의 특정 값 또는 특정 조건을 만족하는 값의 위치(index)를 찾는 방법에 대해 설명합니다. 배열의 특정 값을 만족하는 요소의 위치를 찾는 메서드는 Array.Index() 및 Array.LastIndexOf() 메서드가 있으며, 특정 조건을 만족하는 값의 위치를 찾는 메서드는 Array.FindIndex() 및 Array.FindLastIndex() 메서드가 존재합니다. Array.FindIndex() 및 Array.FindLastIndex() 메서드를 사용하면, 클래스 배열에서 특정 조건을 만족하는 값의 위치도 구할 수 있습니다. 참고로 람다식에 대한 사전 지식이 없다면, Array.FindIndex(), Array.FindLastIndex() 메서드 사용 방법은 내용.. C#/배열 2021. 10. 3. [C#]배열에서 조건에 맞는 값 검색(Find, FindAll, FindLast) C#에서 종종 로직에 일치하는 배열의 값을 검색해야 하는 경우가 존재합니다. 이번 포스팅에서는 배열에서 특정 조건에 일치하는 값을 검색하는 메서드를 소개합니다. 참고로 람다식과 제네릭 컬렉션인 List에 대한 사전 지식이 없다면, 내용이 어려울 수 있습니다. 목차 첫 번째 요소를 반환하는 Array.Find() 메서드 모든 요소를 반환하는 Array.FindAll() 메서드 마지막 요소를 반환하는 Array.FindLast() 메서드 첫 번째 요소를 반환하는 Array.Find() 메서드 Find() 메서드는 특정 조건에 일치하는 첫 번째 요소(값)를 반환합니다. 첫 번째 요소는 시작 위치(0번째 Index)와 가장 가까운 배열의 요소입니다. 특정 조건에 일치하는 값이 없으면 타입(T)의 기본값을 반환합.. C#/배열 2021. 10. 2. [C#]배열 중복 값 제거(Distinct) 배열에서 중복 값을 제거한다는 의미는 고유한 값만 가진다는 의미입니다. 하지만, C#에서는 배열의 값을 제거할 수 없기 때문에 중복 값이 없는 새로운 배열을 생성해야 합니다. 이러한 경우 Distinct() 메서드를 사용하여 중복 값이 제거된 새로운 배열을 쉽게 생성할 수 있습니다. 이번 포스팅에서는 Distinct() 메서드 사용 방법과 객체 배열에서 중복 값 제거 방법을 정리하였습니다. 목차 Distinct() 메서드 객체 배열에서 문제점 IEqualityComparer 상속 Equals() 및 GetHashCode() 메서드 재정의 익명 타입 사용 IEquatable 상속 정리 Distinct() 메서드 Distinct() 메서드를 사용하기 위해 using문에 다음 코드를 추가합니다. using S.. C#/배열 2021. 9. 26. [C#]JSON을 객체로 변환(JSON to Object) 이번 포스팅에서는 역직렬화(Deserialize)를 사용하여 JSON 문자열을 객체로 변환하는 방법을 정리하였습니다. JSON(Javascript Object Notation)은 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식이며, 특정 프로그래밍 언어에서 사용되는 기법이 아니라 데이터를 송수신하는 약속 방식입니다. 이번 포스팅은 네트워크 통신을 통해서 JSON 데이터를 가져오도록 하였으며, API 요청부터 응답받은 JSON 데이터를 객체로 변환하는 과정을 다룹니다. 목차 무료 API 사이트 .NET 4.x Framework인 경우 API 요청 JSON을 객체로 변환 JSON의 속성을 Class로 변환 복잡한 구조의 JSON을 객체로 변환 무료 API 사이트 API 요청을 하고 J.. C# 2021. 9. 26. [C#]객체를 JSON으로 변환(Object to JSON) 객체를 JSON으로 변환(Object to JSON) 이번 포스팅은 C#에서 직렬화(Serialize)를 사용하여 객체를 JSON으로 변환하는 방법을 소개합니다. JSON이란? JSON(Javascript Object Notation)은 데이터를 저장하거나 전송할 때 사용되는 경량의 DATA 교환 형식이며, 특정 프로그래밍 언어에서 사용되는 기법이 아니라 데이터를 송수신하는 약속 방식입니다. 객체를 JSON으로 변환하는 과정을 직렬화라고 하며, JSON을 객체로 변환하는 과정을 역직렬화라고 합니다. .NET 4.x Framework인 경우 .NET 5 Framework는 System.Text.Json 네임스페이스에서 JsonSerializer 클래스를 기본으로 제공하기 때문에 객체를 JSON으로 직렬화 .. C# 2021. 9. 25. [C#]난수 생성 방법(Random 클래스) C#은 난수(랜덤 값)를 생성하기 위해 Random 클래스를 제공합니다. 이번 포스팅에서는 Random 클래스의 메서드를 사용하여 난수를 생성하는 방법을 소개합니다. 목차 임의의 난수 생성 범위의 난수 생성 최소에서 최대 범위의 난수 생성 소수점 난수 생성 랜덤 바이트 생성 시드 값 임의의 난수 생성 임의의 난수는 Random 클래스의 Next() 메서드를 사용하여 생성할 수 있습니다. 다음 코드는 임의의 난수를 생성하는 코드입니다. Random randomObj = new Random(); int randomValue = randomObj.Next(); Next() 메서드는 -2,147,483,648 ~ 2,147,483,647 범위 내 양의 정수를 반환합니다. 다음은 랜덤 값을 List에 넣는 코드입.. C# 2021. 9. 25. [C#]코드 실행 시간 측정 개발자로서 애플리케이션의 성능을 최적화하기 위해 코드 실행 시간을 측정하고 문제가 되는 코드를 수정하는 작업은 선택이 아닌 필수입니다. 비즈니스 로직을 처리하는 코드의 실행 시간을 측정하고 싶은 경우 C#에서는 Stopwatch 클래스를 사용할 수 있습니다. 이번 포스팅에서는 Stopwatch 클래스를 사용하여 코드 실행 시간을 측정하는 방법을 소개합니다. Stopwatch 클래스 우선, Stopwatch 클래스를 사용하기 위해 using문에 System.Diagnostics 네임스페이스를 추가합니다. using System.Diagnostics; 다음은 1,000,000,000번의 루프를 실행 시간을 측정하는 코드입니다. Stopwatch watch = new Stopwatch(); int sum = .. C# 2021. 9. 25. [C#]문자열을 정수로 변환 방법(String to Int) C#에서 문자열을 정수로 변환하는 방법을 소개합니다. 다음 3가지 방법을 사용하여 숫자 형식의 문자열을 정수로 변환할 수 있습니다. 목차 Parse() 메서드 Convert 클래스 TryParse() 메서드(권장 방식) Parse() 메서드 Parse() 메서드는 문자열을 정수로 변환하는 가장 쉬운 방법이며 16, 32, 64비트 부호 있는 정수 타입에 사용할 수 있습니다. Int16.Parse() Int32.Parse() Int64.Parse() 다음은 Parse() 메서드 기본 사용 방법입니다. Int32.Parse("1000"); // 1000 Int32.Parse("-1000"); // -1000 Parse() 메서드는 공백이 있을 경우 공백을 알아서 제거합니다. Int32.Parse(" 2000.. C#/문자열 2021. 9. 25. [C#]제네릭 형식 제약 조건(where) 제네릭(Generic)은 특정 데이터 타입(Data Type)에 국한되지 않고 모든 타입을 허용하는 제네릭 메서드와 제네릭 클래스를 구현할 수 있지만, 특정 조건에만 대응되는 데이터 타입이 필요한 경우가 있습니다. 이러한 경우 where 키워드를 사용하여 제약 조건을 추가할 수 있으며, 제약 조건을 만족하지 않는 경우 컴파일 에러가 발생하도록 할 수 있습니다. 이번 포스팅에서는 제네릭 제약 조건이 무엇인지 정리하였습니다. 목차 제네릭 제약 조건 추가 제네릭 제약 조건 종류 멀티 제약 조건 제네릭 제약 조건 추가 다음은 모든 타입을 허용하는 제네릭 클래스입니다. class GenericClass { public T objMember { get; set; } } class Program { static vo.. C# 2021. 9. 23. [C#]메서드를 매개 변수로 전달(Func, Action, Predicate) C#에서는 대리자(delegate)를 사용하여 메서드를 매개 변수로 전달할 수 있는 기법이 존재합니다. 바로 Func 대리자, Action 대리자, Predicate 대리자를 사용하여 전달할 수 있습니다. 이번 포스팅에서는 C#에서 메서드를 매개 변수로 전달할 수 있게 해주는 Func, Action, Predicate 대리자를 소개합니다. 목차 Func 대리자 Action 대리자 Predicate 대리자 정리 Func 대리자 Func 대리자는 0~16개의 입력 매개 변수가 존재하며, 반환 값이 존재합니다. Func 대리자는 다음과 같이 .Net FrameWork에 선언되어 있습니다. public delegate returnType Func(InputType arg); returnType 반환 타입입니다... C# 2021. 9. 22. [C#]대리자(delegate) 개념, 필요성 C#에서 대리자(delegate)는 메서드를 대신 호출해주는 기법으로 '대신 실행해주는 사람'이라는 국어사전에서 설명하고 있는 의미와 유사합니다. 대리자는 메서드의 주소를 참조하고 있어서 메서드를 대신 호출할 수 있는데요. C/C++의 참조 포인터와 유사하지만, 데이터 타입을 안전하게 처리한다는 장점이 있습니다. 이번 포스팅에서는 대리자란 무엇인지 그리고 대리자가 왜 필요한지 정리하였습니다. 목차 대리자(delegate)란? 대리자의 필요성 정리 대리자란(delegate)란? 위에서 설명했듯이 대리자는 메서드를 대신해서 호출하는 기법이며, 대리자를 선언하기 위해서는 delegate 키워드를 사용합니다. 한정자 delegate 반환타입 대리자이름 ( 매개변수목록 ) delegate 키워드를 제외하면, 메서.. C# 2021. 9. 22. 이전 1 ··· 10 11 12 13 14 15 16 다음