C#
[C#] Linq 정리
박도치
2025. 4. 14. 21:46
Linq에서 자주 쓰인다고 생각되는 조건 및 함수들
Where() | 조건 필터링 | list.Where(x => x > 10) |
Select() | 변환/매핑 | list.Select(x => x * 2) |
OrderBy() | 오름차순 정렬 | list.OrderBy(x => x) |
OrderByDescending() | 내림차순 정렬 | list.OrderByDescending(x => x) |
Distinct() | 중복 제거 | list.Distinct() |
ToArray() | 배열로 변환 | list.ToArray() |
ToList() | 리스트로 변환 | list.ToList() |
Any() | 하나라도 조건 만족하면 true | list.Any(x => x < 0) |
All() | 전부 조건 만족하면 true | list.All(x => x > 0) |
First() | 첫 번째 요소 반환 (조건 가능) | list.First(x => x > 0) |
FirstOrDefault() | 첫 번째 또는 null/기본값 | list.FirstOrDefault() |
Count() | 요소 개수 | list.Count() or list.Count(x => x > 10) |
Sum() | 총합 | list.Sum() or list.Sum(x => x.Score) |
Max() / Min() | 최대 / 최소값 | list.Max(), list.Min() |
Take(n) | 앞에서 n개만 가져오기 | list.Take(3) |
Skip(n) | 앞에서 n개 건너뛰기 | list.Skip(2) |
Reverse() | 순서 뒤집기 | list.Reverse() |
where()
조건에 맞는 요소만 필터링 할 때 사용
int[] arr = { 1, 2, 3, 4, 5 };
var result = arr.Where(x => x > 3).ToArray();
// 출력: [4, 5]
Select()
각 요소를 변환시킬 때 사용 (Parsing하거나 수에 변화를 줄 때)
string arr = "1,2,3";
var result = arr.Select(x => x * 2).ToArray();
// 출력: [2, 4, 6]
string arr2 = "123";
var result2 = arr2.Select(c => int.Parse(c.ToString())).ToArray();
// 출력 :[1, 2, 3]
OrderBy()/ OrderByDescending()
오름차순/내림차순 정렬
int[] arr = { 3, 1, 4 };
var asc = arr.OrderBy(x => x).ToArray();
// 출력: [1, 3, 4]
var desc = arr.OrderByDescending(x => x).ToArray();
// 출력: [4, 3, 1]
Distinct()
중복 제거
int[] arr = { 1, 2, 2, 3, 3, 3 };
var result = arr.Distinct().ToArray();
// 출력: [1, 2, 3]
Any()
조건이 하나라도 충족되면 true
int[] arr = { 1, 3, 5 };
bool hasEven = arr.Any(x => x % 2 == 0);
// 출력: false (짝수가 없음)
All()
모든 조건이 충족되어야 true
int[] arr = { 2, 4, 6 };
bool allEven = arr.All(x => x % 2 == 0);
// 출력: true
Count()
조건을 만족하는 개수 세는 용도
int[] arr = { 1, 2, 3, 4, 5 };
int count = arr.Count(x => x > 2);
// 출력: 3
Task() / Skip()
내가 원하는 수를 앞에서부터 가져오는 용도 / 적은 수 만큼 건너뛰는 용도
int[] arr = { 10, 20, 30, 40, 50 };
var take2 = arr.Take(2).ToArray();
// 출력: [10, 20]
var skip3 = arr.Skip(3).ToArray();
// 출력: [40, 50]
FirstOrDefault()
조건에 맞는 첫 번째 요소 가져오기(없으면 기본값)
int[] arr = { 1, 3, 5 };
int firstEven = arr.FirstOrDefault(x => x % 2 == 0);
// 출력: 0 (짝수가 없어서 기본값 반환)