Как записать Строку. Содержит в Динамическом Linq

Я пытаюсь записать динамический запрос linq как:

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

Я знаю, что это работает на

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

но я ищу динамическое linq решение

Спасибо.

6
задан Zalan 9 August 2010 в 13:12
поделиться

2 ответа

Found my answer now.

var q = obj.Where("message.Contains(@0)", "hello");
12
ответ дан 8 December 2019 в 18:29
поделиться

Я знаю, что это не то, что вы ищете, но это просто вопрос, который следует рассмотреть:

В зависимости от того, сколько различных видов операций вы ожидаете выполнить, я бы создал оператор switch для обработки этого.

В качестве примера, некоторый псевдокод с использованием перечисления:

(OperationType - это Enum, если требуется)

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;
}
1
ответ дан 8 December 2019 в 18:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: