Guest User

Untitled

a guest
Jul 22nd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.55 KB | None | 0 0
  1. //easy way:
  2.  
  3. Expression<Func<Artist, bool>> expression1 = a => ids.Contains(a.ID)
  4.  
  5. //the dynamic way:
  6.  
  7. var propertyType = typeof(int);
  8.  
  9. var parameter = Expression.Parameter(typeof (Artist), "a");
  10.  
  11. var body = Expression.Call(
  12. typeof(Enumerable).GetMethods().First(m => m.Name.Equals("Contains")).MakeGenericMethod(propertyType),
  13. Expression.NewArrayInit(propertyType, ids.Select(i => Expression.Constant(i)).ToArray()),
  14. Expression.Property(parameter, "ID"), propertyType));
  15.  
  16. var expression1 = Expression.Lambda<Func<Artist, bool>>(body, parameter);
Add Comment
Please, Sign In to add comment