How to write String.Contains in Dynamic Linq

Deadly 提交于 2019-12-10 13:47:47

问题


I'm trying to write a dynamic linq query like:

var q = obj.Where("message.Contains('hello')");

I know it works for

var q = obj.Where(o => o.message.Contains('hello'));

but i'm looking for dynamic linq solution

Thanks.


回答1:


Found my answer now.

var q = obj.Where("message.Contains(@0)", "hello");



回答2:


I know this isn't what you are looking for, but just as a point to consider:

Depending on how many various kinds of operation you expect to perform, I would create a switch statement to handle this.

As an example, some pseudocode using an enum:

(OperationType is an Enum if desired)

private object example(OperationType optype, Object obj, String match)
{
   var q;
   switch (optype)
        {
        case OperationType.Contains:
            q = obj.Where(o => o.message.Contains(match));
        break;
        case OperationType.EndsWith:
            q = obj.Where(o => o.message.EndsWith(match));
        break;
        case OperationType.StartsWith:
            q = obj.Where(o => o.message.StartsWith(match));
        break;
    }
    return q;
}


来源:https://stackoverflow.com/questions/3440319/how-to-write-string-contains-in-dynamic-linq

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!