Unity3d C# toolba 사용해보기

C# LINQ를 이용해보자 from where orderby select

C# LINQ의  from where orderby select 대해 알아보겠습니다.


지난시간에 이어서 이번에는 데이터를 조금더 가공해서 출력하는것을 해보려고 합니다.



예제를 풀어나가기에 앞서


기본적인 문법을 먼져 알아보고 넘어가도록 하겠습니다.



1.from

 sql문을 접했던 사람이라면 익숙하실텐데요..  문법적인 어순이 쿼리와는 조금 차이가 있지만 의미는 다르지 않습니다. 대상이되는 무엇인가를 from 뒤에다가 써 주는 것입니다.


대상이되는 배열이나 리스트 등이 되겠지요.. 


아직 제 눈에 안익어서 저도 어색합니다만.. 많이 연습해보는 수 밖엔 없겠지요..





int[] arrays = { 1,2,3,4,5,6,7,8,9};
...
var tests = from test in arrays     <-- from 뒤에  in arrays 이런식으로 넣어줬네요
..


마치 foreach문과 비슷해보이네요.. LINQ에서 사용하게 될 변수와 접근하게될 데이터를 차례로 써 주시면됩니다.



2.where

이건.. 원하는 조건을 넣어주는 곳입니다.   Filter역할을 하는것이죠...   가령 이런 것 처럼요..   위에 있는 숫자들중 5보다 큰 숫자만이라던가..  원하는 데이터에 조건을 거는 것입니다. 혹시 and연산이 되는지  저도 모르게 그만 and 를 넣었더니 에러가 나네요 .. 그렇죠.. C#에서는.. &&였는데...   ^^



3.orderby

이것도 잘 아시겠지만.. 정렬순서를 정하는 방법입니다. 오름차순으로 할 것인지 아니면 내림차순으로 할 것인지를 말죠.. 뒤에를 그냥 생략하면 오름차순(ascending)입니다. 반대로 내림차순을 원하신다면 뒤에 descending을 써주시면되겠습니다.



4.select


최종적으로 결과가 추출 되는 변수입니다.  그냥 단순히.. 결과에 해당하는 리스트만을 변수로 출력할 수 있지만.. 이곳에 데이터를 조작하여 변경을 한 결과를 출력할 수 도 있습니다 기존의 쿼리와 비슷하죠?  C#에서는 데이터베이스의 sql만큼의 다양한 문법이 지원이 되지는 않지만 그래도 데이터추출에 필요한 기본적인것이 가능합니다.


select문을 좀 더 변화시켜서 결과를 뽑아보도록 하겠습니다.



C# LINQ select where orderby select


위의 예제에서보면.. where 절에 &&(and) 조건을 넣어서 좀 더 구체적인 요청을 하였습니다.  또한..  select절을 살펴보면...  무명형식을 이용해서 .. Name과 InchHeight를 만들어 0.393을 곱하여 cm에서 인치계산한 후 결과를  var prifiles에 할당해 버렸네요..  

var형식을 취하고 있기때문에 select절의 결과에 맞춰서 알아서 형식이 결정되어 편리합니다. 


무명형식에 대해 잠시 알아보자면..



var myInstance = new { Name = "Test" , Age = "27" };

괄호와 그 사이에 임의 프로퍼티 이름을 적고 값을 할당하면 새 형식의 프로퍼티가됨
단! 할당된 값은 변경이 불가능하다.. (읽기만가능..)



기본적인 워밍업을 했으니.. 다음시간엔 LINQ의 중요한 몇가지 문법을 공부해 보도록 하겠습니다.























댓글