본문 바로가기
Unity 유니티 기초강의

유니티 Unity Linq 링큐 람다식 SQL 쿼리 데이터 정렬 방법

by 만사오케이프로 2022. 6. 4.
반응형

1.LINQ 링큐란?

Language Integrated Query 라고합니다. 데이터를 빠르고 편리하게 추출하는 방식이라 할 수 있습니다. 그리고 C# 3.0부터 추가가 되기 시작한 문법입니다. 기본적으로 람다표현식을 사용하여 간결하고 가독성 좋게 작성 가능합니다.

Linq = SQL + 람다식

 

2.람다식이란?

람다식은 익명 함수라 부릅니다. 식별자가 없는 함수입니다. 쉽게 말하면 함수인데 함수를 만들지 않고 코드한줄에 불필요한 내용을 삭제하여 호출하는 방식이라고 할수 있습니다. 주로 반복문이나 비교문에 많이 사용합니다.

람다식은 파라미터(0개 ~ N개)를 => 연산자 왼쪽에, 실행 문장들을 => 연산자 오른쪽에 둡니다.
예)
x => x*10​

Func<intint> square = x => x * x;

Console.WriteLine(square(5));

// Output: // 25

 

3.Query 쿼리란?

쿼리는 DB(데이터베이스)를 다룰때 많이 나오는 단어입니다. 데이터베이스 테이블에서 데이터 또는 정보를 요청할떄 사용하는 SQL문법이 쿼리입니다.

 

SQL은 Structured Query Language의 약자입니다.

Structured는 구조화되어있다는 뜻입니다

Query는 데이터를 넣기, 삭제, 수정, 읽기 등의 요청을 할 수 있다는 뜻합니다.

Language 언어로 요청한다는 뜻입니다.

 

SQL에서 가장 많이 사용하는 문법은 다음 4가지이다.

from : 어떤 데이터에서 찾을 것입니까?

where : 어떤 조건으로 찾을 것입니까?

order by : 어떤 항목을 기준으로 정렬할 것입니까?

select : 어떤 항목을 추출할 것입니까?

 

 

4) 사용 예제 1 - 조건에 맞는 값 추려내기

 public void Start()
 {
        int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };
        var nQuery =
            from num in numbers     
            where (num % 2) == 0
            select num;

        foreach (int num in numQuery)
        {
            Debug.Log($"{num}");
        }
 }

 

0

2

4

6

출력됩니다.

 

간단히 첫 줄부터 해석하자면 

from num in numbers   //numbers 배열 안 모든 값들

where (num % 2) == 0  //그중에 2로 나눈 나머지가 0인 수중에 

select num                 //값들

이렇게 해석할 수 있습니다.

 

 

5) 사용 예제 2 - 정렬하기

orderby 오름차순 -> 낮은 값에서 높은 값으로 순서를 정렬합니다.

float[] valuse = {1.5f, 2.3f, 2f, 4.0f, 9f};
var sortValue = from d in valuse 
    orderby d 
    select d;

foreach (float valus in sortValue)
{
    Debug.Log($"{valus}");
}

1.5

2

2.3

4

9

 

 

descending 내림차순 -> 높은 값에서 낮은 값으로 순서를 정렬합니다.

float[] valuse = {1.5f, 2.3f, 2f, 4.0f, 9f};
var sortValue = from d in valuse 
    orderby d descending 
    select d;

foreach (float valus in sortValue)
{
    Debug.Log($"{valus}");
}

9

4

2.3

2

1.5

 

반응형

댓글