갓똥
나는야 프로그래머
갓똥
전체 방문자
오늘
어제
  • 분류 전체보기 (186)
    • 프로그래밍 (146)
      • 자바 (9)
      • 안드로이드 (2)
      • 유니티 (20)
      • C++ (38)
      • C# (56)
      • HTML (2)
      • 파이썬 (3)
      • 자료구조 (2)
      • 알고리즘 (0)
      • 문제풀이 (4)
      • 디자인 패턴 (7)
      • 카카오톡 봇 (1)
      • 엑셀 (1)
      • 기타 (1)
    • 게임 (21)
      • 테일즈위버 (0)
      • 카이로소프트 (1)
      • 순위 (19)
      • 기타 (1)
    • 일상 (13)
      • 카페 (1)
      • 방탈출 (12)
    • 기타 (6)
      • 웃긴자료 (5)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • C++
  • 글로벌게임매출
  • 유니티 그래프
  • 강남 방탈출
  • 게임매출순위
  • C++ 상속
  • C++ virtual
  • C++ 소멸자
  • 2020년 게임 매출
  • 게임 매출 순위
  • Unity Graph
  • 게임 디자인 패턴
  • 자바
  • 모바일 게임 순위
  • 알고리즘
  • 유니티 골드그래프
  • c# delegate
  • 전세계 게임 매출
  • 롤 골드그래프
  • c# 코루틴
  • pc 게임 순위
  • c# coroutine
  • C# boxing
  • c# unboxing
  • c# Thread
  • c# collection
  • 전세계게임매출순위
  • pc게임 순위
  • C# 예외 처리
  • 유니티 그래프 그리기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
갓똥

나는야 프로그래머

[C#] Fluent vs Query (LINQ Fluent vs Query Syntax)
프로그래밍/C#

[C#] Fluent vs Query (LINQ Fluent vs Query Syntax)

2020. 5. 7. 18:42
728x90
반응형

1. 핵심 정리

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

class Program {
    static void Main() {
        string[] arr = {"kim", "shin", "lee", "park", "choi"};
        
        // Fluent Syntax
        var e = arr.Where(s => s.Contains("i"))
                   .OrderBy(s => s.Length)
                   .Select(s => s.ToUpper());
        
        foreach(var n in e)
            Console.WriteLine(n);
    }
}

 

문자열이 5개 들어있는 배열이 있다.
해당 배열에서 LINQ를 이용해서 필터링 후 요소를 꺼내보려고 한다.
먼저 Where을 통해 문자열 중 i가 포함되어 있는 문자열을 찾는다. (kim, shin, choi)
그 다음 OrderBy로 정렬 순서를 문자열의 길이로 한다. (kim, shin, choi)
마지막으로 Select를 통해 문자열을 대문자로 출력한다. (KIM, SHIN, CHOI)
이러한 방식으로 확장 메소드를 부르는게 정확한 원리고
이러한 표기법을 LINQ Fluent Syntax라고 한다.

 

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

class Program {
    static void Main() {
        string[] arr = {"kim", "shin", "lee", "park", "choi"};
        
        // Query Syntax
        var e = from s in arr
                where s.Contains("i")
                orderby s.Length
                select s.ToUpper();
        
        foreach(var n in e)
            Console.WriteLine(n);
    }
}

 

다음은 SQL쿼리문과 비슷한데 
맨 처음에 from으로 배열의 요소를 받는다.
그리고 모든 메소드는 소문자로 적는다. 사용방법은 위의 코드와 같다.
이러한 표기법을 Query Syntax라고 부른다.

위의 두 코드는 결과는 같다.
사실 아래 코드로 적으면 위의 코드로 컴파일러가 바꿔주는 방식이다.
아래 코드도 틀린 코드는 아니고 다른 방법일 뿐이니 보면 좋을 것 같다.
728x90
반응형

'프로그래밍 > C#' 카테고리의 다른 글

[C#] 스레드 클래스 멤버  (0) 2020.05.08
[C#] 스레드 개념 (Thread)  (0) 2020.05.08
[C#] LINQ 원리  (0) 2020.05.07
[C#] LINQ 개념 (Language INtegrated Query)  (0) 2020.05.06
[C#] 코루틴 (COROUTINE) (3)  (0) 2020.05.05
    '프로그래밍/C#' 카테고리의 다른 글
    • [C#] 스레드 클래스 멤버
    • [C#] 스레드 개념 (Thread)
    • [C#] LINQ 원리
    • [C#] LINQ 개념 (Language INtegrated Query)
    갓똥
    갓똥
    공부하며 알아가는 내용을 정리해 봅니다.

    티스토리툴바