C# list 를 사용할때는 값 가져오는 방법이 여러가지가 있습니다. 본문에서는 가장 일반적으로 사용하는 방법들과 편리하게 함수형태로 list 의 값을 가져오는 방법들 등을 설명해드리고자 합니다.
C# LIST 기본적인 값 가져오기
기본적으로 Add함수를 통해 값을 하나씩 list의 맨뒤에 추가할 수 있으며 배열 인덱스 접근 연산자를 통해 각 인덱스에 접근해서 값을 가져올 수 있습니다. 아래 소스코드 확인 해보시죠.
List<int> list = new List<int>();
list.Add(10);
list.Add(20);
int a = list[0]; //20
int b = list[1]; //20
Add()함수를 통해서 값을 하나씩 추가하고 있으며 [인덱스] 연산자를 통해서 0번 및 1번인덱스에 접근하여 값을 가져오고 있습니다.
C# LIST 반복문 값 가져오기
IndexOf(int 인덱스) 함수를 통해서도 동일하게 값을 가져올 수 있습니다. 값을 찾을 때는 for문을 통해서 []연산자 혹은 IndexOf() 함수를 list처음부터 list.Count 번째 까지 순회하면서 호출하며 if문으로 비교해서 값을 찾는 방법을 많이 사용합니다.
int findIndex = -1;
for (int i = 0; i < list.Count; ++i)
{
if(list[i] == 20)
{
findIndex = i;
break;
}
}
if (findIndex == -1)
{
/* 못찾았을때 처리 */
}
else
b = list[findIndex];
위의 형태가 자주 사용되는경우 다음처럼 함수(메서드)로 만들어 놓고 해당 함수를 호출하는 법도 좋습니다. 아래는 함수를 통해서 C# 에서 LIST 값 을 가져오는 함수 예시입니다.
c# list값 가져오는 함수 예시
다음 함수는 리스트내에서 특정 값이 저장된 인덱스를 반환해주는 함수입니다.
static int FindIntListIndex(List<int> list, int val)
{
if (list == null)
return -1;
for (int i = 0; i < list.Count; ++i)
{
if (list[i] == val)
return i;
}
return -1;
}
값을 찾을 시 인덱스를 반환하게 되고, LIST 가 NULL 이거나 값을 못찾게 되면 -1 을 반환합니다.
해당 함수는 본인의 LIST 타입에 맞게 변경하시거나 혹은 제네릭을 익히셨다면 제네릭을 사용하셔서 T타입 값을 가져오시면 됩니다.
C# list값 제거
list에서 값을 제거할때는 RemoveAt(int 인덱스) 함수를 통해 특정 인덱스의 값을 삭제할 수 있습니다.
list.RemoveAt(0); //0번인덱스를 삭제합니다
list값 제거시 가장 많이 하게되는 실수중 하나는 for문을 돌면서 RemoveAt()을 호출하는데, 잘못된 인덱스에 접근하거나 for문을 그보다 더 많이 돌게되어 list의 길이 범위를 넘어가게 되어 IndexOutbound 예외가 뜨는 경우 입니다.
기본적으로 list에서 값을 제거하는 순간, 제거된 인덱스보다 뒤의 인덱스부터 한칸씩 인덱스 순서가 당겨지게됨에
주의하셔야 합니다.
'.Net & Mono > C#' 카테고리의 다른 글
2. C#에서 문자열 연결(이어붙이기)의 성능에 대한 이야기 (5) | 2020.02.02 |
---|---|
1. c#에서의 struct 와 class 의 new에 대한 이야기 (4) | 2020.01.05 |