[C#] Linq

공부/C#  2013.11.20 23:01
<


 

안녕하세요.. 명월입니다.

 

요즘 날씨가 많이 춥네요... 이럴 때 일수록 몸조심 하세요...

 

요번 포스팅에서는 Linq함수에 대해서 알아보도록 하겠습니다.

 

Linq 클래스는 인터넷을 찾아보면 워낙 많은 자료가 있습니다만 딱 뭐다라고 정의 해 놓은건 없는거 같네요...글쎄 저도 Linq함수를 딱 뭐라고 정의하기는 힘듭니다.

그래도 요약 줄여보자면 프로그램을 개발하다보면 어떤 데이터를 처리할 때가 많습니다.

그 데이터가 컨트롤이 될 수 도 있고 바이너리가 될 수 도 있고 어떤 데이터 수치가 될 수가 있겠네요... 지금까지 그런 데이터들을 보면 처리하기 위한 함수 비교함수 또 하나의 ArrayList를 선언하여 소트하고 이런 복잡한 로직을 만들었네요... C++이면 메모리 처리까지 신경써야 하는 아주 머리 아픈 일입니다.

 

.Net Framework 3.5 이상 부터는 이 Linq 클래스를 지원하여 데이터 자원 관리를 효율적으로 높였습니다... 제가 보기엔 생산성을 증가 시킨거 같네요... 아직 Linq제어가 서툴러서 그런지 무척 무거운 느낌이 듭니다...

 

Linq는 이런 데이터를 효율적으로 처리하기 위한 방식인데 보통 Dataset, Dictionary, List 등에서 쓰는 거 같네요...

 

그럼 소스를 보면서 확인 해 보겠습니다.

 

 

 

소스 내용을 보면 먼저 상단 Dataset에 데이터를 입력합니다.

그리고 Data1의 컬럼 중에서 5이상 값을 추출하여 출력하였습니다.

 

 

두번째는 Dictionary 사용법입니다.

 

 

 

이 소스내용은 key 값을 key로 넣어서(?) 5이상의 값을 출력하는 형태로 나옵니다.

결과 확인해 보겠습니다.

 

 

세번째로 List 를 확인해 보겠습니다.

 

 

 

결과입니다.

 

 

여기까지 보니깐 형태가 Sql-query 문이랑 비슷한 구조 입니다...

비슷한 구조이다 보니 Join 형태도 있더군요... 확인해 보겠습니다.

 

 

결과 화면입니다.

 

 

조인부터해서 정렬기능까지 있네요...

 

글쎄 저는 아직 Linq가 적응이 안되서인지 이미지바이너리 처리할 때 빼곤 써본적이 없는 거 같네요... 큰 데이터를 처리할 때 사용하면 큰 도움이 될 꺼 같습니다.

그리고 Dataset 과 Dictionary 등을 많이 사용하는 부분이니 IDispose 상속 받아서 Dispose 처리 항상 신경써야 하겠습니다..

(C#은 다 좋은데 조금만 뭐하면 메모리가 폭발적으로 늘어버리니 당황스럽습니다.)

 

예제 소스 첨부합니다.

 

CollectionEx.zip

 

 

 

 

 

 


댓글 0개가 달렸습니다.
댓글쓰기