Unity/문법

[Unity]LinQ - FirstOrDefault, Where, Select 차이

turbulence93 2025. 4. 28. 11:57

오늘은 List에서 원하는 값을 출력하기 위해 LinQ 매서드를 사용하는 법과 그 차이점에 대해 알아봤다.


정리 내용 

1. FirstOrDefault

리스트 내부에서 조건을 만족하는 첫 번째 요소를 반환한다.

특정한 값을 찾고 싶을때 사용하며, 값을 찾지 못하면 Null값을 반환한다.

더보기

var item = list.FirstOrDefault(x=>x.Value > 10);

위 코드를 예시로 리스트 안에서 Value가 10보다 큰 요소 중 가장 첫 번째 요소를 반환한다.

List 내부에 [0,13,11,7,5] 가 있다면 가장 작은 수인 11이 아니라 먼저 만나는 13을 반환한다.

2. Where

조건을 만족하는 모든 요소를 반환한다.

더보기

var filtered = list.Where(x => x.Value > 10);

list 내부의 10보다 큰 값들을 전부 찾아서 filtered 에 저장해서 사용할 수 있다.
이때 filtered에 저장 된 값들은 참조 형식으로 이루어져 있어 수정에 유의해야 한다.

 

3. Select

리스트의 요소를 특정 방식으로 변환하여 결과를 반환할 수 있다.

더보기

var mapped = list.Select(x => x.Value * 2);

이 경우 mapped에 들어가는 값은 list요소를 변환하여 값 형식으로 전해 주는것이 때문에 mapped 변수는 자유롭게 사용해도 된다.

 

내용 요약

  • FirstOrDefault와 Where
    →조건을 만족하는 값을 한개를 찾느냐 전부 찾느냐  차이
  •  
  • Where와 Select
    →조건을 만족하는 데이터가 참조 형식이냐 값 형식이냐의 차이


위 조건과 특징을 토대로 상황에 맞춰 필요한 값을 적절하게 뽑아서 사용할 수 있을거 같다.

'Unity > 문법' 카테고리의 다른 글

[Unity] 상속 금지 클래스 (sealed)  (0) 2025.09.22
[Unity]Random.Range와 Random().Next 차이점  (0) 2025.04.15
[Unity] if문과 switch case 문  (0) 2025.04.14
[Unity] 람다식의 이해  (0) 2025.04.09