2012-07-30 2 views
1

회원 검색 기능을 만들고 Where to my searchResults 변수를 추가하고 싶습니다. 그러나 그렇게하기 전에 IQueryable이어야 할 수도 있습니다. 그것이 어디에서 해결할 수 없기 때문에검색 - IQueryable Linq

var searchResults = listMembers.DataSource = members.getAllMembers().OrderByDescending(x => x.createdDate).Select(x => new 
    { 
     x.ID, 
     x.memberNumber, 
     x.name, 
     x.email, 
     x.birthDate, 
     hasPayed = Helper.renderBoolImage(x.hasPayed, true), 
     isConfirmed = Helper.renderBoolImage(x.isConfirmed, true), 
     isExportedToExcel = Helper.renderBoolImage(x.isExportedToExcel, true) 
    }); 

    if (!String.IsNullOrEmpty(search.name)) 
    { 
     searchResults = searchResults.Where(x => x.name.ToLower().Equals(enc(search.name.ToLower()))); 
    } 

이 줄은하지만 컴파일되지 않습니다 :

내가 달성하고자하는 것입니다 상단에

searchResults = searchResults.Where(x => x.name.ToLower().Equals(enc(search.name.ToLower()))); 
+1

대소 문자를 구별하지 않는 동등한 검사는'a.Equals (b, StringComparison.InvariantCultureIgnoreCase)'(또는 해당하는 경우 다른 문화권)를 사용하십시오. 문자열을 직접 변환해야한다면'ToLower'보다는'ToUpperInvariant'를 사용해야합니다. [.NET Framework에서 문자열 사용에 대한 유용한 정보] (http://msdn.microsoft.com/en-us/library/dd465121.aspx) – phoog

+0

@phoog 조언을 주셔서 감사합니다! :) – KLIM8D

답변

6

문제입니다

일반적으로 원래 코드 (x = y = z) - 코드를 좀 더 혼란스럽게 만들었습니다. ...

+0

답장을 보내 주셔서 감사합니다. 다중 할당이 마음에 들지 않으므로이 작업을 수행해야한다고 어떻게 제안 하시겠습니까? 검색 개체에는 확인해야하는 6 개의 값이 더 포함되어 있으므로 이름이 아닙니다. – KLIM8D

+0

@ KLIM8D : 당신이 의미하는 것이 명확하지 않습니다. 'DataSource' 속성을 필터링되지 않은 값으로 설정 하시겠습니까? 다중 할당을 사용하려는 이유가 명확하지 않습니다. –

+0

이 메서드의 끝에서 필터링 된 값 (searchResults)에 'DataSource' 속성을 설정하려고합니다. 변수'search'는 6 개의 변수를 포함하는 내부 클래스입니다 - 모두 null입니다. 이 검색 개체의 모든 항목을 검색해야한다는 것은 확실하지 않습니다. 일부 항목은 null 일 수 있기 때문입니다. 그래서 내가 생각한 것은 주제에있는 것과 같은 6 개의 문장이 거의 비슷하다는 것입니다. – KLIM8D

-1

당신이 using System.Linq;이 있습니까 당신의 파일? .NET 3.5 이상을 사용하고 있습니까? 현재 searchResults의 유형 listMembers.DataSource의 유형과 동일, 하지members.getAllMembers...

의 유형입니다

var searchResults = members.getAllMembers()...; 

if (!String.IsNullOrEmpty(search.name)) 
{ 
    searchResults = searchResults.Where(...); 
} 

listMembers.DataSource = searchResults; 

:

var searchResults = listMembers.DataSource = members.getAllMembers()... 

당신은 사용해야합니다

관련 문제