본문 바로가기

Languague/C#

[C#] Any(), All(), Exists() 사용법 요소 null 체크

 

C#에서 리스트, 배열에서 특정 값을 확인하거나 null 체크를 할 수 있는 다양한 함수들을 제공하고 있다.

  • Any
  • All
  • Exist

 

Any

  • 리스트, 배열에 요소가 하나 이상 있는지 확인한다.
  • 요소가 있다면 True, 요소가 없으면 False 반환한다.
  • 주로, 리스트가 null인지 확인하는데 사용한다.

[예제]

using ConsoleApp3;
using System;
using System.Linq;

namespace ConsoleApp1
{
    class Program
    {
        
        static void Main(string[] args)
        {
            First.FirstAndFirstDefault();
            AnyAndAllExists.Any();
           // AnyAndAllExists.All();
           // AnyAndAllExists.Exists();

        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApp3
{
    public static class AnyAndAllExists
    {
        public static List<string> testAnyTrue = new List<string> { "aa", "ba", "ca", "da", "ea" };
        public static List<string> testAnyFalse = new List<string>();
   
        public static List<ObjectTest> objectTest = new List<ObjectTest>();

        public class ObjectTest
        {
            public int ID;
            public string PW;
        }

        public static void Any()
        {

            //1. Any : 요소의 존재 여부 확인
            Console.WriteLine(testAnyTrue.Any()); // true 반환
            Console.WriteLine(testAnyFalse.Any()); //false 반환

            if (objectTest.Any()) // 리스트 객체 존재 여부 확인
            {
                Console.WriteLine(objectTest.FirstOrDefault().ID);  //객체에 값 할당 안되있을 경우 예외 발생
            }
            else
            {
                Console.WriteLine("objectTest = False");
            }
        }
    }
}

 

[결과]

 

→ 요소가 비어있지 않으면 ture반환, 비어있으면 false 반환을 확인할 수 있다.

 

 

All

  • 모든 요소의 조건을 확인한다.
using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApp3
{
    public static class AnyAndAllExists
    {
        public static List<string> testAnyTrue = new List<string> { "aa", "ba", "ca", "da", "ea" };
        public static List<string> testAnyFalse = new List<string>();
   
        public static List<ObjectTest> objectTest = new List<ObjectTest>();

        public class ObjectTest
        {
            public int ID;
            public string PW;
        }

     
        public static void All()
        {
            //2. All : 요소의 모든 요소가 조건을 만족 하는지 여부
            Console.WriteLine(testAnyTrue.All(t => t.Contains("a"))); //모든 요소가 a를 포함하는가 /true 
            Console.WriteLine(testAnyTrue.All(t => t.Contains("e"))); //모든 요소가 e를 포함하는가 /false 

        }

    }
}

 

 

[결과]

 

→ Cantains(포함 여부 확인)으로 모든 요소에서 포함하는지 체크하여 반환한다.

→ 모든 요소를 체크해서 반환하기 때문에 하나라도 포함되지 않으면 False를 반환한다.

 

 

Exists

  • 특정 조건을 만족하는 요소가 있는지 확인
using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApp3
{
    public static class AnyAndAllExists
    {
        public static List<string> testAnyTrue = new List<string> { "aa", "ba", "ca", "da", "ea" };
        public static List<string> testAnyFalse = new List<string>();
   
        public static List<ObjectTest> objectTest = new List<ObjectTest>();

        public class ObjectTest
        {
            public int ID;

        public static void Exists()
        {
            objectTest.Add(new ObjectTest { ID =3 , PW = null});
            objectTest.Add(new ObjectTest { ID = 10, PW = "test" });

            //3. Exists : 특정 조건을 만족하는 요소의 존재 여부 확인
            Console.WriteLine(objectTest.Exists(t =>  string.IsNullOrEmpty(t.PW))); // PW가 null인 요소가 있는가 /true
            Console.WriteLine(objectTest.Exists(t => t.ID > 5)); // objectTest ID 객체가 5보다 큰 요소가 있는가 / true
        }

    }
}

 

[결과]

→ 조건을 사용해서 해당 조건을 만족하는 요소가 리스트 내 존재하는지 확인할 수 있다.

 

300x250