[C#] LINQ란

정명직·2023년 6월 19일
2
post-thumbnail

LINQ란?

LINQ(Language-INtegrated Query)는 데이터 질의(Query) 기능을 C#에서 사용해 내가 원하는 데터만 가져오는 기술이다. 기본적으로 람다표현식을 사용하여 간결하고 가독성 좋게 작성 가능하다

LINQ 기본 구조

from : 어떤 데이터에서 찾을 것인지

where : 원하는 값을 추출하기 위한 조건

select : 데이터에서 어떤 항목을 추출할 것인지

배열 길이가 3인 문자열을 찾아 출력하는 예제

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

    var result= from str in strArr
                     where str.Length == 3
                     select str;

    foreach (var str in result)
      Console.WriteLine(str);
  }
}

출력 결과

Car
Abc

예제처럼 LINQ을 사용하면 반복문과 조건문 없이 원하는 문자열을 추출할 수 있다.

Item 클래스 객체로 구성된 List에서 level이 10이상인 Item 이름이 추출하는 예제

class Item
{
  public string name;
  public int level;
}

class Program
{
  static void Main(string[] args)
  {
    List<Item> items = new List<Item>
    {
      new Item() { name = "Sword", level = 10},
      new Item() { name = "Bow", level = 15},
      new Item() { name = "Shield", level = 5},
    };

    var result = from item in items 
                     where  item.level > 10
                     select item.name;

    foreach (var name in result)
      Console.WriteLine(name);
  }
}

출력 결과

Bow

위 예제처럼 where 절에는 특정 프로퍼티에 대해 조건을 작성할 수 있으며, select 절에는 원하는 항목만 추출할 수 있다.

LINQ의 장점

  • SQL 유사하므로 SQL 사용이 익숙하다면 쉽게 접근할 수 있다.
  • 반목문, 조건문을 줄일 수 있기 때문에 코드가 단순해진다 (가독성이 좋아진다).

LINQ의 단점

  • 질의가 잘못된 경우 for, foreach와 같은 반복문을 사용하는 것보다 성능이 저하될 수 있다.
profile
유니티 클라이언트 개발자

0개의 댓글