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에서 값을 제거하는 순간, 제거된 인덱스보다 뒤의 인덱스부터 한칸씩 인덱스 순서가 당겨지게됨에

주의하셔야 합니다.

 

+ Recent posts