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 |