LINQ를 이용하여 유사 검색(SQL의 LIKE ‘%%’)을 하는 경우, 보통 Contains() 메서드를 사용할 수 있습니다.
그런데, 이 경우 case sensitive 하므로, 대소문자를 정확하게 구분한 키워드를 넘겨야 원하는 결과를 얻을 수 있습니다.
Case insensitive하게 사용하기 위해서는 일반적으로 다음과 같이 처리합니다.
구분 |
내용 |
장점 |
단점 |
대문자(or 소문자)로 치환하여 |
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 |