본문 바로가기

Programming/.Net

LinQ 유사 검색

LINQ를 이용하여 유사 검색(SQL LIKE %%)을 하는 경우, 보통 Contains() 메서드를 사용할 수 있습니다.

그런데, 이 경우 case sensitive 하므로, 대소문자를 정확하게 구분한 키워드를 넘겨야 원하는 결과를 얻을 수 있습니다.

 

Case insensitive하게 사용하기 위해서는 일반적으로 다음과 같이 처리합니다.

구분

내용

장점

단점

대문자(or 소문자)로 치환하여
Contains()
로 비교

fi => fi.DESCRIPTION.toLower().Contains(description.ToLower())

간단

 

IndexOf()로 비교 옵션을 설정

c => c.CategoryName.IndexOf("for",
StringComparison.InvariantCultureIgnoreCase) >= 0)

 

복잡

 

또한 keyword Trim()을 이용하여, 공백을 제거하고 전달하는 것이 일반적인 상황에 적합할 것 같습니다.

'Programming > .Net' 카테고리의 다른 글

[NuGet] ImageResizer  (0) 2014.10.14
dynamic 형식의 활용  (0) 2014.09.04
#region 사용해야 할까?  (0) 2014.08.04
Embedded resource name 규약  (0) 2014.07.29
[NuGet] PagedList.Mvc  (0) 2014.07.22