LINQ(Language-INtegrated Query)는 데이터 질의(Query) 기능을 C#에서 사용해 내가 원하는 데터만 가져오는 기술이다. 기본적으로 람다표현식을 사용하여 간결하고 가독성 좋게 작성 가능하다
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 절에는 원하는 항목만 추출할 수 있다.