C#

[C#] LINQ(데이터 쿼리)

연향동큰손 2026. 2. 19. 11:11

LINQ (Language Integrated Query)는 컬렉션을 SQL처럼 질의하는 문법이다.

 

foreach + if문을 통해 조건에 맞는 요소를 찾는 것을 구현하게 되면 코드가 길어지면서 가독성이 떨어지는 문제가 발생하지만 LINQ를 통해 구현하게 되면 코드 한줄을 통해 원하는 행위를 명확하게 표현할 수 있다.

Where

Where는 컬렉션에서 조건을 만족하는 요소만 골라내는 필터다.

List<string> list = new List<string>();
list.Add("Apple");
list.Add("Grape");
list.Add("Banana");
list.Add("AAA");
list.Add("BDFA");


IEnumerable<string> q = list
    .Where(p => p.StartsWith("A"));
    
foreach(var item in q)
{
    Console.WriteLine(item); // Apple, AAA 출력
}

 

 

Select

Select는 컬렉션의 각 요소를 다른 값이나 형태로 변환하는 기능이다.

List<string> list = new List<string>();
list.Add("Apple");
list.Add("Grape");
list.Add("Banana");
list.Add("AAA");
list.Add("BDFA");


IEnumerable<string> q = list
    .Where(p => p.StartsWith("A"))
    .Select(p=>p.ToUpper());

foreach(var item in q)
{
    Console.WriteLine(item); // APPLE, AAA 출력
}

 

 

Any

컬렉션에 조건에 맞는 요소가 하나라도 있으면 true, 아니면 false를 반환

bool hasA = list.Any(q => q.StartsWith("A"));

 

 

FirstOrDefault

조건에 맞는 첫 번째 요소를 가져오고, 없으면 기본값을 반환하는 메서드다.

var ddd = list.FirstOrDefault(q => q.StartsWith("A"));

 

값이 없는 경우 → default(T)

  • 참조 타입: null
  • 값 타입: 0, false 등

 

'C#' 카테고리의 다른 글

스레딩  (0) 2026.01.13
BCL  (0) 2026.01.10
[C#] 대리자(delegate)  (0) 2026.01.08
[C#] Collection / Generic Collection  (0) 2026.01.04