본문 바로가기
카테고리 없음

[C#] 링크(LINQ)

by 코모's 2023. 7. 13.
반응형

LINQ란?

LINQ(Language-INtegrated Query)의 약자인 LINQ는 데이터 질의(Query) 기능을 C#에서 사용할 수 있는 기술이ㅏㄷ.

쉽게 설명하자면 C#의 배열, 컬렉션, XML, DataSet 등 에서 내가 우너하는 데이터만 가져오고 싶은 경우 사용할 수 있는 기술이라고 할 수 있다.

 

LINQ의 장단점을 알아보기 전에 LINQ가 무엇인지 다음 예제를 통해 간략하게 알아보자.

 

다음 예제는 배열에서 대문자 "A"로 시작하고 문자열의 길이가 3보다 큰 문자열을 LINQ로 추출한 뒤 콘솔에 출력한다.

class Program
{
  static void Main(string[] args)
  {
    string[] strArr = { "Apple", "Banana", "Car", "Angular", "Add", "Sum" };

    var linqResult = from str in strArr
                     where str.StartsWith("A") && str.Length > 3
                     select str;

    foreach (var str in linqResult)
      Console.Write(str + " ");
  }
}

결과

Apple Angular

반복문과 조건문 없이 LINQ에서 사용할 수 있는 문법을 사용하여 원하는 문자열을 추출할 수 있다.

 

LINQ의 주요기능

  • LINQ to objects : 배열, 컬렉션, 제네릭 컬렉션에서 LINQ를 사용하여 원하는 데이터를 추출할 수 있다.
  • LINQ to XML : XML 문서에서 LINQ를 사용하여 원하는 데이터를 추출할 수 있다.
  • LINQ to SQL : SQL 서버의 데이터베이스와 함께 동작할 수 있다.
  • LINQ to DataSet : DataSet에서 LINQ를 사용하여 원하는 데이터를 추출할 수 있다.

LINQ의 장점

  • SQL과 유사하므로 쉽게 접근할 수 있다.
  • LINQ는 컴파일 시간에 타입을 체크한다. 따라서, 프로그램 실행전에 문제가 되는 코드를 수정할 수 있다.
  • 반복문, 조건문을 사용하는 것 보다 코드가 단순해진다.
  • LINQ의 질의는 재사용할 수 있다.

LINQ의 단점

  • SQL과 유사하지만, 복잡한 정의(Query)는 작성할 수 없다.
  • 질의가 잘못된 경우 for, foreach와 같은 반복문을 사용하는 것 보다 성능이 저하될 수 있다.

LINQ의 기본 구조

  • from : 어떤 데이터에서 원하는 값을 추출할 것인지
  • where : 원하는 값을 추출하기 위한 조건
  • select : 데이터에서 어떤 항목을 추출할 것인지

LINQ의 질의 구문은 from 키워드로 시작하여 select 키워드로 끝난다.

반응형