C#/C#_기초강의

(C#) LINQ(Language-Integrated Query) 링크 기초

코딩ABC 2023. 4. 23. 07:21
반응형

LINQ는 Language-Integrated Query의 약어로  "통합된 데이터 쿼리어"의 의미입니다.
배열 또는 리스트 등 컬렉션 데이터를 가공할 때 편리하게 사용될 수 있습니다.

namespace
namespace: System.Linq;

 

Linq: 확장 메서드

Linq에서는 다음과 같은 확장 메서드를 제공합니다.

  • Sum() 합
  • Average() 평균
  • Count() 개수
  • Max() 최대값
  • Min() 최소값
  •  
        private void button1_Click(object sender, EventArgs e)
        {
            int[] a = { 4, 1, 5, 2, 3 };
            a.Sum();
            listBox1.Items.Add(a.Sum());
            listBox1.Items.Add(a.Count());
            listBox1.Items.Add(a.Average());
            listBox1.Items.Add(a.Max());
            listBox1.Items.Add(a.Min());
        }

Linq: 확장 메서드

 

 

Linq: 기본 구문

Linq의 기본 구분은 다음과 같습니다.

LINQ 기본 구문
var 변수1 = from 변수 in 데이터원본
                  [ where  조건 ]
                  [ orderby 정렬 ]
                  select  출력할_;

 

예제 1

배열의 각 요소의 값에서 1을 더한 요소를 출력하는 Linq 예제입니다.

        private void button2_Click(object sender, EventArgs e)
        {
            int[] numbers = { 55, 44, 66, 99, 33, 22, 11 };
            var result = from n in numbers
                         select n + 1

            foreach (int a in result)
                listBox1.Items.Add(a);
        }

LINQ

 

예제 2

배열에서 짝수만 출력하는 Linq의 예제입니다.

        private void button2_Click(object sender, EventArgs e)
        {
            int[] numbers = { 55, 44, 66, 99, 33, 22, 11 };
            var result = from n in numbers
                         where n >=50     // ------- 50 이상의 값
                         select n;
            foreach (int a in result)
                listBox1.Items.Add(a);
        }

LINQ

 

예제 3

배열에서 짝수만, 내림차순으로 정렬하여  출력하는 Linq의 예제입니다.

        private void button2_Click(object sender, EventArgs e)
        {
            int[] numbers = { 55, 44, 66, 99, 33, 22, 11 };
            var result = from n in numbers
                         where n%2 == 0
                         orderby n descending
                         select n;
            foreach (int a in result)
                listBox1.Items.Add(a);
        }

LINQ

 

반응형