[C# 문법] C# LINQ FirstOrDefault, LastOrDefault 메서드
- C#/C# 문법
- 2021. 8. 22. 19:15
소개
- 오늘은 C# LINQ 구문에서 FirstOrDefault, LastOrDefault 메서드에 대해서 알려 드리려고 합니다.
- FirstOrDefault, LastOrDefault 메서드를 이용하면 컬렉션에서 조건에 일치하는 첫 요소 또는 마지막 요소를 구할 수 있습니다.
- 이해하기 쉽게 예제 코드를 통해서 어떻게 Count 메서드를 사용하는지 보여 드리고, LINQ를 사용하지 않은 코드와 함께 작상하여 2개의 코드량의 차이도 같이 보여 드리도록 하겠습니다.
LINQ Count 예제코드
- 예제 코드는 학생들의 성적(Score)이 50점 이상인 학생중 제일 첫번째 요소와 마지막 요소의 값을 가져와 정보를 출력해 보도록 하겠습니다.
- 또한, LINQ를 사용하지 않는 구문도 아래 함께 작성해 보았습니다.
using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp7
{
static class Program
{
static void Main(string[] args)
{
var students = InitialStudent();
// LINQ 구문
var firstStudent = students.Where(x => x.Score >= 50)
.FirstOrDefault();
var lastStudent = students.Where(x => x.Score >= 50)
.LastOrDefault();
Console.WriteLine($"첫번째 학생의 이름은 {firstStudent.Name} 입니다.");
Console.WriteLine($"마지막 학생의 이름은 {lastStudent.Name} 입니다.");
// LINQ를 사용하지 않은 구문
Student stu = null;
for(int idx = 0; idx < students.Count; idx++)
{
if(students[idx].Score >= 50)
{
stu = new Student();
stu = students[idx];
break;
}
}
Console.WriteLine($"첫 번째 학생의 이름은 {stu.Name} 입니다.");
}
static List<Student> InitialStudent()
{
List<Student> list = new List<Student>()
{
new Student() { Name = "범범조조", Age = 20, Grade = "A", Score = 100 },
new Student() { Name = "유재석", Age = 21, Grade = "B", Score = 10 },
new Student() { Name = "김종국", Age = 22, Grade = "C", Score = 89 },
new Student() { Name = "송지효", Age = 20, Grade = "D", Score = 60 },
new Student() { Name = "하하", Age = 20, Grade = "A+", Score = 20 },
new Student() { Name = "지석진", Age = 40, Grade = "F", Score = 55 },
new Student() { Name = "아이유", Age = 30, Grade = "A", Score = 64 },
new Student() { Name = "정형돈", Age = 20, Grade = "A", Score = 79 },
new Student() { Name = "김성주", Age = 20, Grade = "A", Score = 29 }
};
return list;
}
}
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
public string Grade { get; set; }
public int Score { get; set; }
}
}
실행 결과
첫번째 학생의 이름은 범범조조 입니다.
마지막 학생의 이름은 정형돈 입니다.
첫 번째 학생의 이름은 범범조조 입니다.
- 위와 같이 LINQ를 이용한 구문의 코드 량이 월등히 적다는 것을 확인할 수 있습니다.
728x90
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] C# LINQ 형변환 OfType<T> 메서드 (0) | 2021.08.25 |
---|---|
[C# 문법] C# LINQ First, FirstOrDefault, Single, SingleOrDefault 차이점 (0) | 2021.08.24 |
[C# 문법] C# LINQ SequenceEqual 메서드 (0) | 2021.08.22 |
[C# 문법] C# LINQ Count 메서드 (0) | 2021.08.22 |
[C# 문법] C# yield (0) | 2021.08.22 |
이 글을 공유하기