[C# 문법] C# Linq Where 구문 AND / OR 조건 추가하는 방법


안녕하세요.

 

오늘은 C# 문법에서 Linq에 대해서 알려드리려고 합니다.

그 중에서도, Where 구문 사용시 OR 조건 추가하는 방법에 대해서 말씀드리려고 하는데요.

 

AND, OR 조건은 다들 아실거라 생각합니다.

 

AND 조건은 A B 모두 참인 경우 성림, OR 조건은 A B 둘 중 하나라도 참 인 경우 성립되는 건데요.


 

Linq를 이용하여 Where 조건을 이용하여 AND, OR 조건을 어떻게 표현하는지 보여드리도록 하겠습니다.

 

바로 예제 코드를 통해서 어떻게 Linq Where 구문을 이용해 AND, OR 구문을 추가 하는지 보여드리도록 하겠습니다.


예제 코드


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace LinqTest

{

    class Program

    {

        static void Main(string[] args)

        {

            List<string> list = new List<string>();

 

            list.Add("1.jpg");

            list.Add("1.png");

            list.Add("2.jpg");

            list.Add("2.png");

            list.Add("12.jpg");

            list.Add("12.png");

 

            List<string> myList = new List<string>();

 

            // AND조건 1, 2 문자 모두 포함한 List 저장

            myList = list.Where(x => x.IndexOf("1", StringComparison.OrdinalIgnoreCase) >= 0 &&

                                     x.IndexOf("2", StringComparison.OrdinalIgnoreCase) >= 0)

                         .Select(x => x).ToList();

 

            Console.WriteLine("--------------- AND 조건 조회 결과 ---------------");

            for(int idx = 0; idx < myList.Count; idx++)

            {

                Console.WriteLine("{0}", myList[idx].ToString());

            }

 

            myList.Clear();

 

            // OR 조건 1, 2 문자 포함한 List 저장

            myList = list.Where(x => x.IndexOf("1", StringComparison.OrdinalIgnoreCase) >= 0 ||

                                     x.IndexOf("2", StringComparison.OrdinalIgnoreCase) >= 0)

             .Select(x => x).ToList();

 

            Console.WriteLine("--------------- OR 조건 조회 결과 ---------------");

            for (int idx = 0; idx < myList.Count; idx++)

            {

                Console.WriteLine("{0}", myList[idx].ToString());

            }

 

        }

    }

}

 

Colored by Color Scripter

cs


실행 결과



위와 같이 값들이 출력되는 것을 확인하실 수 있습니다.


감사합니다.^^


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY