2012-07-30 1 views
1

의 ToUpper와 필드 이름으로 술어, {Param_0 => Param_0.Username.ToUpper().Contains("MX")}발현이 코드가

감사를

+2

메모 : ToUpper에 대해 'InvariantCulture'를 지정해야합니다. – CodesInChaos

답변

2
public static Expression<Func<T, bool>> CreatePredicate<T>(string typeSearch, string searchField, string stringToSearch) 
{ 
    var parameter = Expression.Parameter(typeof(T)); 
    var predicate = Expression.Lambda<Func<T, bool>>(
     Expression.Call(
      Expression.Call(Expression.PropertyOrField(parameter, searchField), "ToUpper", null), 
      "Contains", null, 
      Expression.Constant(stringToSearch.ToUpper())), parameter); 

    return predicate; 
} 
+0

보너스. 나는 "é, è, ..."이라는 악센트가있는 글자가 있습니다. 'e'를 'e'로 처리 할 수있는 방법이 있습니까? –

+0

'ToUpper'의'CultureInfo culture' 매개 변수를 살펴 봐야 할 것입니다. –

+0

첫 번째 또는 두 번째? 나는 예외를 시도했다. –