본문 바로가기
개발/C#

List - 리스트

by EPdev 2020. 7. 14.
728x90

Java에서는 List가 인터페이스다. 그래서 실제로 사용하려면 ArrayList나 LinkedList 등을 사용했다.

하지만 C#에서는 List가 클래스다. 물론 IList라는 인터페이스도 존재한다.

 

여튼 List를 Java의 ArrayList나 LinkedList 처럼 사용하면 되겠다.

 

★ C#에서 맨 앞에 I가 붙으면 인터페이스를 뜻한다는 것을 참고하자.

본인이 인터페이스를 만들 때도 I를 붙여서 구분되기 쉽게 하는 게 좋겠다.


그럼 List를 생성하는 것부터 주로 쓰는 함수를 알아보자.

1. 생성

List<T> list = new List<T>(); //T는 제네릭이다. 제네릭에 대한 공부는 따로 해오자.

List<int> myList = new List<int>(){1, 2, 3}; //myList는 1, 2, 3을 가진다.

List<int> yourList = new List<int>(myList); //yourList가 myList를 받는다.

List<int> list = new List<int>(5); //공간이 5인 List를 만든다.

이 아래부터는 사용될 리스트가 이미 생성된 상태라고 가정한다.

2. 인덱스

list[i]     // list에서 i 번째 요소를 가져온다.

3. 함수

list.Add(5);     // list 맨 뒤에 5를 추가한다. 지금은 int형 list라고 가정하기 때문에, 다른 형은 그에 맞춰서 사용

myList.AddRange(yourList);     //myList 뒤에 yourList를 추가한다. (한 요소가 아닌 리스트 자체를 추가)

list.Clear();     // list를 비워준다.

list.Contains(3);     // list가 3을 포함하고 있는지 확인. boolean 값 반환.

list.Exists(i = > i>2);     // 2보다 큰 요소를 가지고 있는지 확인. boolean 값 반환. Contains와 다르게 조건이 들어간다는 것을 참고

myList.Equals(yourList);     // myList와 yourList가 같은지 확인. boolean 값 반환.

list.Find(i = > i>2);     // 2보다 큰 요소를 가지고 있는지 확인. 해당 값을 반환. 없으면 0

myList = list.FindAll(i = > i>2);     // list에서 2보다 큰 요소 모두를 myList로 반환.

list.ForEach(action);     // 지정된 action을 실행. list 요소 형을 파라미터로 가지는 메소드 넣을 수 있음. 아니면 람다식으로 action 지정

list.Insert(2, 7);     // 2번째 인덱스에 7을 넣어라. 공간과 값은 본인 마음대로.

myList.InsertRange(2, yourList);     // AddRange와 비슷한데, Insert처럼 인덱스를 지정하는 것임.

list.Remove(3);     // list 중 3이라 값을 삭제 (앞에서부터 첫 번째 것만)

list.RemoveAll(action);     // 메소드나, 람다식 넣어서 조건에 맞는 것 모두 삭제

list.RemoveAt(3);     // 인덱스 3의 요소를 삭제

list.RemoveRange(2, 1);      // 대충 감이 오죠? 인덱스 2부터 1개 삭제

list.Reverse();     // list 순서를 거꾸로 만들어줌

list.Reverse(1, 2);     // 인덱스 1부터 2개의 요소 순서를 거꾸로 만듦

list.Sort();      // 정렬. 기본 오름차순

list.Sort(action);     // action에 뭔가 넣으면 해당 조건으로 정렬

int [] arr = list.ToArray();     // list를 array로 바꿔줌

이외에도 List에는 수많은 함수들이 있다. 전체를 한번 읽어보고 필요할 때 찾아서 사용하는 게 좋겠다.

 

 

https://docs.microsoft.com/ko-kr/dotnet/api/system.collections.generic.list-1?view=netcore-3.1

 

List Class (System.Collections.Generic)

인덱스에서 액세스할 수 있는 강력한 형식의 개체 목록을 나타냅니다.Represents a strongly typed list of objects that can be accessed by index. 목록을 검색, 정렬 및 조작하는 메서드를 제공합니다.Provides methods

docs.microsoft.com

 

728x90

'개발 > C#' 카테고리의 다른 글

Lambda Expression - 람다식  (0) 2020.07.21
as, is 연산자  (0) 2020.07.21
값형식과 참조형식  (0) 2020.07.13
Stack and Heap  (0) 2020.07.13
? / ?? - C#의 물음표  (0) 2020.07.13

댓글