C# 서버 개발자 전환기 4편
2026-09-15 18:31:52
LINQ 심화 학습
1 | var users = new List<User> |
1. Select()
js에서 map()과 비슷함
1 | var userNames = users |
2. First() / FirstOrDefault()
2.1 First()
조건에 맞는 첫 번째 데이터를 가져온다 없으면 예외 발생
1 | var user = users.First(u => u.Level >= 30); // Alice (Level 30) |
2.2 FirstOrDefault()
조건에 맞는 것 중 첫 번째를 가져오고, 없으면 기본값을 반환
1 | var user = users.FirstOrDefault(u => u.Level >= 100); // null |
3. Single() / SingleOrDefault()
3.1 Single()
조건에 맞는 게 정확히 1개여야 함 아니면 예외 발생
1 | var user = users.Single(u => u.Id == 100); // { Id = 100, NickName = "Alice", Level = 30 } |
3.2 SingleOrDefault()
조건에 맞는 게 0개 또는 1개일 수 있음
1 | var user = users.SingleOrDefault(u => u.Id == 100); |
기대 결과값
1 | 1개 있음 → 해당 User 반환 |
4. Any()
조건을 만족하는 데이터가 하나라도 존재하는지 확인
1 | var exists = users.Any(u => u.Level >= 40); // true |
5. All()
모든 데이터가 조건을 만족하는지 확인
1 | var result = users.All(u => u.Level >= 20); // true |
6. Count()
데이터 개수를 가져온다
1 | var count = users.Count(); // 3 |
조건 지정도 가능
1 | var highLevelUserCount = users.Count(u => u.Level >= 30); // 2 |
7. GroupBy()
특정 기준으로 데이터를 그룹화
1 | var result = users |
8. ToDictionary()
데이터를 Dictionary로 변환, Key가 중복되면 예외가 발생
1 | var userDictionary = users |
9. SelectMany()
리스트 안에 있는 리스트를 하나로 펼침
1 | var inventories = new List<List<string>> |
10. Distinct()
중복을 제거
1 | var serverNames = new List<string> |
11. ThenBy() / ThenByDescending()
추가 정렬할때 사용 ThenBy는 오름차순, ThenByDescending는 내림차순
1 | var result = users |