C# - 일반화 List

양규빈·2023년 7월 21일
0

C# 공부

목록 보기
19/30
post-custom-banner

개요

일반화 리스트(Generic List)는 동적으로 크기가 조정되는 배열을 구현하는 자료구조입니다. 일반화 리스트는 System.Collections.Generic 네임스페이스에 있는 List<T> 클래스를 사용하여 정의한다.

List<T> 클래스는 배열과 비슷하지만, 배열과는 달리 크기가 동적으로 조정될 수 있으며, 요소의 추가, 삭제, 검색 등에 대한 다양한 기능을 제공한다.

List의 사용법은 아래와 같다.
List<자료형> 변수명 = new List<자로형>()

List나 Dictionary는 굉장히 자주 사용되는 컬렉션이다.

코드 및 세부 설명

기초

Add를 이용하여 값을 추가할 수 있다.

Insert 함수
중간에 값을 추가하는 함수.
lists.Insert(3, 1000);
변수명.Insert(인덱스, 값)

단, Insert는 뒤의 값들을 모두 뒤로 밀어줘야하기 때문에,
리스트 내에 큰 값이 저장되어 있는 경우, 퍼포먼스 상에서 불이익이 있다.

InsertRange(인덱스, 배열)
배열내의 전체 값을 리스트에 저장할 수 있다.

상단의 코드는,
lists[2] 값부터 222~444 값이 할당되었다.

위의 코드에서 상단의 함수는, 선언과 동시에 초기화를 하는 로직이고,
또한, 하단의 함수는 배열을 이용해 초기화를 하는 법이다.

정렬

기본적으로 Sort함수를 이용하여 정렬할 수 있다.

Sort함수는 함수 파라미터를 입력받아, 사용자 임의대로 정렬 우선 순위를 조정할 수 있다.
위 정렬 제어함수에서 리턴값을 바꾸면, 내림차순으로 바꿀 수 있다.

위 코드는 정렬 함수를 대리자(delegate_를 이용하여, 정렬 함수를 완성하여 Sort의 정렬 순서를 변경하고, 해당 값을 출력한 이미지이다.

검색


Find
Predicate를 조건으로 하는 Find 함수.
해당 조건을 만족하는 첫 번째 값을 반환한다.

Find역시도 Sort와 마찬가지로, Delegate를 바로 입력하여, 조건을 바로 입력할 수 있다.

FindAll
조건을 만족하는 전체 값을 리스트 형태로 반환하는 맴버 함수이다.
FindAll 역시도 Delegate를 사용하여, 곧바로 조건을 입력할 수 있다.

FindIndex
조건을 만족하는 Index를 찾는 함수.
이를 응용하여, 조건을 만족하는 인덱스를 찾고, 해당 인덱스의 값을 가져오는 코드도 구현할 수 있다.

110 이상의 값을 만족하는 Value가 리스트 내에 존재하지 않기 때문에, FindIndex에서 –1을 반환한다.

따라서, findIndex의 양수 검출 조건문에서 거짓 결과가 나오게 되고.
이 경우, 리스트 내의 값을 출력하지 못한다.

리스트와 맴버 메서드

Remove
:원하는 값을 직접 제거할 수 있는 함수.

Contains
:원하는 값이 리스트 내에 있는지 판별하는 함수.
이때, 원하는 값이 있을 경우 참.
없을 경우 거짓을 반환한다.
이를 응용하여, 리스트 내 값을 찾을 수 있다.

Exists
Exists함수는 Contains와 비슷하지만, 조건을 delegate와 같이, 제너릭 형태로 받는다는 점에서 활용성이 더 높다고 할 수 있다.

profile
훌륭한 개발자를 꿈꾸는 중입니다
post-custom-banner

0개의 댓글