1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| List<string> tags = new List<string>(){"a","b", "C"};
var paramEx = Expression.Parameter(typeof(Mitarbeiter), "m");
Expression completeEx = null; foreach (var item in tags) { Expression partEx = Expression.Call( paramEx, typeof(Mitarbeiter).GetProperty("mitarbeiter_tags").GetValue(null, null).GetType().GetMethod("Contains"), Expression.Constant(item) ); completeEx = completeEx == null ? partEx : Expression.Or(completeEx, partEx); } return Expression.Lambda<Func<Mitarbeiter, bool>>(completeEx, paramEx); |