C#에서 빈 컬렉션을 다룰 때는 LINQ에서 제공하는 DefaultIfEmpty() 메서드를 활용하면 됩니다.
일반적으로 배열이나 리스트가 비어 있으면 반복 처리 과정에서 아무런 결과를 얻지 못하거나, 후속 연산에서 예외가 발생할 수 있습니다. 하지만 DefaultIfEmpty() 메서드를 사용하면 오류가 발생하는 대신 해당 데이터 타입의 기본값(default value)을 자동으로 반환합니다. 예를 들어 숫자 타입(float, int 등)이라면 0, 참조 타입이라면 null이 반환됩니다.
빈 리스트 준비하기
먼저 요소가 하나도 없는 빈 리스트를 만들어 보겠습니다.
List<float> myList = new List<float>();
DefaultIfEmpty() 메서드 적용
이제 DefaultIfEmpty() 메서드를 호출하여 기본값을 화면에 출력해 보겠습니다.
var res = myList.DefaultIfEmpty();
리스트가 비어 있으므로 이 메서드는 float 타입의 기본값인 0을 담은 시퀀스를 반환합니다.
전체 예제 코드
using System;
using System.Linq;
using System.Collections.Generic;
class Demo {
static void Main() {
// 요소가 없는 빈 리스트 생성
List<float> myList = new List<float>();
// DefaultIfEmpty()로 기본값 처리
var res = myList.DefaultIfEmpty();
foreach (var a in res) {
Console.WriteLine(a);
}
}
}실행 결과
0
추가 팁: 원하는 기본값 직접 지정하기
DefaultIfEmpty()는 매개변수 없이 호출하면 타입의 기본값을 반환하지만, 인자를 전달하면 원하는 값을 기본값으로 지정할 수도 있습니다.
// 빈 경우 -1을 기본값으로 반환 var res = myList.DefaultIfEmpty(-1);
이처럼 DefaultIfEmpty() 메서드를 사용하면 빈 컬렉션으로 인한 오류나 예외 상황을 간단하고 안전하게 처리할 수 있습니다.