C#에서 List를 다루다 보면 종종 리스트의 마스지막 요소에 접근해야 할 때가 있습니다.
이번 포스팅은 C#에서 리스트의 마지막 요소에 접근하는 세 가지의 간단한 방법을 정리했습니다.
| 1. 인덱스를 이용한 접근
가장 일반적인 방법 중하나는 리스트의 길이를 확인한 후 마지막 요소에 접근하는 것입니다.
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
if (numbers.Count > 0)
{
int lastIndex = numbers.Count - 1;
int lastElement = numbers[lastIndex];
Console.WriteLine("마지막 요소: " + lastElement);
}
else
{
Console.WriteLine("리스트가 비어있습니다.");
}
List<T> 클래스는 'Count'라는 속성을 가지고 있는데, 이는 리스트의 요소 수를 나타냅니다.
Count는 0부터 계산되지 않고, 1부터 계산되므로 리스트의 마지막 요소를 참조하려면
인덱스를 'Count - 1'로 설정해야 합니다.
| 2. Last() 메서드를 사용한 접근
.Net Framework 3.5 이상부터 Linq를 이용해 마지막 요소에 접근하는 것도 가능합니다.
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
if (numbers.Any())
{
int lastElement = numbers.Last();
Console.WriteLine("마지막 요소: " + lastElement);
}
else
{
Console.WriteLine("리스트가 비어있습니다.");
}
위 코드에서 Last() 메서드는 리스트의 마지막 요소를 반환합니다.
이 방법은 코드를 간결하게 만들 수 있어 제가 많이 선호하는 방법입니다.
다만 List가 비어 있을 경우에 Last() 메서드를 사용하면 예외가 발생하므로,
LastOrDefault() 메서드를 사용하는 것이 더 안전할 수 있습니다.
LastOrDefault() 메서드는 리스트가 비어 있을 경우 기본 값을 반환합니다.
| 3. 인덱스 및 범위 사용
C# 8부터 도입된 인덱스 및 범위를 사용하는 것입니다.
이를 통해 리스트의 마지막 요소애 간단하게 접근할 수 있습니다.
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
if (numbers.Count > 0)
{
int lastElement = numbers[^1];
Console.WriteLine("마지막 요소: " + lastElement);
}
else
{
Console.WriteLine("리스트가 비어있습니다.");
}
위 코드에서 '^1' 은 인덱스를 역으로 지정하며, 리스트의 마지막 요소를 나타냅니다.
마치 Python의 '-1' 로 인덱스를 지정하는 방식과 비슷해 보입니다.
| 마무리
List의 마지막 요소에 접근하는 세 가지 방법에 대해 알아봤습니다.
위 예시 전부 리스트를 비어있는지 확인하고 예외를 방지하므로
참고하시면 될 것 같네요!
틀린 점이나 질문이 있으시면 댓글로 남겨주세요!
감사합니다 :)
'C#' 카테고리의 다른 글
C# 네트워크 통신을 위한 BitConverter 클래스 이해 (0) | 2024.03.18 |
---|---|
C# Byte 통신을 위한 Array 클래스 이해 (0) | 2024.03.15 |
C# 멀티스레드 동기화 : Monitor.Enter, Monitor.Exit (0) | 2024.02.19 |
C# "System.InvalidOperationException: collection was modified enumeration operation may not execute." 에러 처리 방법 (0) | 2024.01.23 |
C# 이미지의 2차원 배열을 순회하는 여러가지 방법 - 2 (2) | 2024.01.21 |