list 썸네일형 리스트형 C# BinarySearch와 검색 알고리즘 성능 비교 이 글은 C#에서 Array.BinarySearch, List.BinarySearch 사용법과 선형 검색(Linear Search) 대비 성능 차이를 간략히 정리합니다. 정렬 여부, 비교자 일관성, 데이터 크기에 따른 선택 기준을 함께 제시합니다.1. BinarySearch 개요BinarySearch는 정렬된 컬렉션에서 O(log n)으로 대상을 찾는 알고리즘입니다. 선형 검색은 O(n)으로 단순하지만 데이터가 커질수록 비용이 빠르게 증가합니다. BinarySearch는 반드시 같은 기준으로 정렬이 되어 있어야 하며, 찾는 값과 정렬 기준(Comparer)이 일관되어야 합니다.2. 기본 사용법 (배열/리스트)// 배열에서 BinarySearchint[] data = { 1, 3, 5, 7, 9 };int.. 더보기 C# KeyedCollection<T>로 키 기반 컬렉션 설계 KeyedCollection은 List와 Dictionary의 장점을 결합한 컬렉션입니다. 순서를 유지하면서도 키 기반의 빠른 조회가 가능해 도메인 엔티티(예: SKU, 코드, 이메일 등)로 구성된 목록을 다룰 때 유용합니다.1. KeyedCollection 개요- 아이템을 순서대로 보관하며 인덱스 접근이 가능합니다.- 키로 빠르게 조회할 수 있습니다(내부적으로 일정 개수 이상부터 Dictionary를 사용).- 키는 고유해야 하며, 보통 아이템의 특정 속성을 키로 사용합니다.- GetKeyForItem을 오버라이드해 키를 정의합니다.2. 언제 Dictionary/List 대신 쓰나- List만으로는 중복 방지 및 키 조회가 어렵습니다.- Dictionary는 순서가 의미 있을 때 불편합니다.- Keye.. 더보기 C# 제네릭 (Generics) 기초 1. 개념 설명제네릭은 클래스·인터페이스·메서드에 형식 매개변수 T를 도입해 재사용성과 타입 안전성을 높이는 기능입니다. 하나의 구현으로 여러 타입을 지원하면서 캐스팅을 줄이고 박싱/언박싱을 피해 성능 이점을 얻습니다. .NET의 List, Dictionary가 대표적 예이며, 컴파일 타임에 오류를 조기에 발견할 수 있습니다.2. 코드 예제아래 예제는 제네릭 클래스 Box, 제네릭 메서드 PrintAll, 그리고 제약조건 where T : IComparable로 두 값의 최댓값을 구합니다. 콘솔에 박스 값, 문자열 목록, 각 타입의 최댓값을 출력합니다.using System;using System.Collections.Generic;class Box{ private T _value; publi.. 더보기 이전 1 다음