C#

[C#]List 특정 값 존재하는지 체크하는 방법

DevStory 2022. 1. 24.

이번 포스팅은 C#의 List에서 특정 값이 존재하는지 체크하는 방법을 소개합니다.

 


Contains() 함수

Contains() 함수 구문은 다음과 같습니다.

public bool Contains (T item);

item은 List <T>에서 찾을 객체(또는 값)이며, item이 클래스의 객체 또는 배열과 같은 참조 타입에 대해서 값은 null이 될 수 있습니다. item이 존재하면 Contain() 함수는 True를 반환하고 그렇지 않으면 False를 반환합니다.

 

다음은 Contains() 함수 사용 예제입니다.

class Program
{
    static void Main(string[] args)
    {
        List<string> list = new List<string>();

        list.Add("A");
        list.Add("ABC");
        list.Add("CCC");
        list.Add("BC");

        Console.WriteLine("list.Contains(\"BC\"): " + list.Contains("BC"));
    }
}

실행 결과


Exists() 함수

Exists() 함수 구문은 다음과 같습니다.

public bool Exists (Predicate<T> match);

매개변수 match는 특정 값을 찾기 위한 조건문이 정의된 Predicate <T> 대리자입니다. Exists() 함수는 대리자에 정의된 조건문에 일치하는 요소가 하나 이상 존재하면 True를 반환하고 그렇지 않으면 False를 반환합니다.

 

다음은 Exists() 함수 사용 예제입니다.

class Program
{
    private static bool isStringEqualsAB(string str)
    {
        return str.Equals("AB");
    }

    static void Main(string[] args)
    {
        List<string> list = new List<string>();

        list.Add("A");
        list.Add("ABC");
        list.Add("CCC");
        list.Add("BC");

        Console.WriteLine("list.Exists(isStringEqualsAB): " + list.Exists(isStringEqualsAB));
    }
}

실행 결과


FindIndex() 함수

FindIndex() 함수 구문은 다음과 같습니다.

public int FindIndex (Predicate<T> match);

매개변수 match는 위에서 소개한 Exists() 함수와 동일합니다. FindIndex() 함수는 대리자에 정의된 조건문에 일치하는 요소를 발견하면 첫 번째 요소(0번째 index)와 가장 가까운 index를 반환합니다. 조건을 만족하는 요소가 없는 경우 -1을 반환합니다.

 

다음은 FindIndex() 함수 사용 예제입니다.

class Program
{
    private static bool isStringEqualsA(string str)
    {
        return str.Equals("A");
    }

    static void Main(string[] args)
    {
        List<string> list = new List<string>();

        list.Add("A");
        list.Add("A");
        list.Add("A");
        list.Add("A");

        Console.WriteLine("list.FindIndex(isStringEqualsA): " + list.FindIndex(isStringEqualsA));
    }
}

실행 결과

마지막 요소와 가장 가까운 index를 찾는 경우에는 FindLastIndex() 함수를 사용하면 됩니다. 사용 방법은 FindIndex() 함수와 동일합니다.


데이터 형식이 객체인 List

데이터 형식이 객체로 구성된 List에서 특정 값이 존재하는지 체크해야 하는 경우 람다식을 사용합니다.

 

다음은 람다식 사용 예제입니다.

public class User
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        List<User> list = new List<User>();

        list.Add(new User() { Name = "Tom", Age = 19});
        list.Add(new User() { Name = "Bella", Age = 30 });
        list.Add(new User() { Name = "Min", Age = 25 });
        list.Add(new User() { Name = "Bob", Age = 40 });

        Console.WriteLine("list.FindIndex(item => item.Name.Equals(\"Min\")): " + list.FindIndex(item => item.Name.Equals("Min")));
    }
}

실행 결과

반응형

'C#' 카테고리의 다른 글

[C#]익명 타입(Anonymous Type)  (0) 2022.02.05
[C#]StringBuilder 사용 방법  (1) 2022.02.05
[C#]Mutable과 Immutable(가변과 불변)  (1) 2022.01.18
[C#]인덱서 사용 방법  (0) 2022.01.17
[C#]열거형 사용 방법  (0) 2022.01.17

댓글