LINQ 쿼리(using System.Linq)
C#에 서도 LINQ를 지원한다.
LINQ 기술은 개체(LINQ to Objects), 관계형 데이터베이스(LINQ to SQL) 및 XML(LINQ to XML)에 대한 일관성 있는 쿼리 환경을 제공합니다. 쿼리를 작성하는 개발자의 경우 LINQ에서 가장 눈에 잘 띄는 "언어 통합" 부분은 쿼리 식입니다. 쿼리 식은 선언적 쿼리 구문으로 작성됩니다. 쿼리 구문을 사용하면 최소한의 코드로 데이터 소스에 대해 필터링, 정렬 및 그룹화 작업을 수행할 수 있습니다.
특정 데이터 코드에 의한 필터링 정렬 및 그룹화를 매우 쉽고 빠르게 할 수 있다.
실제 성능 테스트에서도 많은 효율을 보인다. (일반적인 상황)
SQL에서 많이 사용하는 문법은 다음 4가지 이다.
from ~: 어디에서 데이터에서 찾을 것인가?
where ~: 어떤 조건으로 찾을 것인가?
order by ~: 어떤 항목을 기준으로 정렬할 것인가?
select ~: 어떤 항목을 추출할 것인가?
실제 사용한 코드는 다음과 같다.
using System.Linq;
//살아있는 유닛리스트 가져오기
var list = this.m_EnemyList.Where(unit =>unit.GetLive());
return list.ToList();
//distance 가장 가까운 Enemy 찾기
this.m_EnemyList.OrderBy(t =>Vector3.Distance(playerPos,t.transform.position)).FirstOrDefault();
LINQ로 사용할 때의 주의할 점
Avarage, Count 등 몇몇 연산자(orderBy, Reverse)등 같은 질의 연산자들은 원본 시퀀스를 반복하기 때문에 퍼포먼스 면에서 효율이 떨어진다. 성능에 대해서 고민을 하면서 사용해야 한다.
참고 URL : [Microsoft C#에서 LINQ쿼리 소개]
★★☆☆☆
반응형
댓글