Без учета регистра содержит Dynamic Linq - PullRequest
6 голосов
/ 22 ноября 2011

При использовании Contains с Dynamic Linq для Linq-to-objects поиск выполняется с учетом регистра. Я хотел бы иметь возможность поиска без учета регистра (как Linq-to-sql, потому что SQL-сервер делает это по умолчанию).

Что-то вроде:

this.someQuery = this.someQuery.Where(field + ".Contains(@0, true)", strValue);

, где true означает: caseinsensitive = true, как одно из расширений System.String.Contains. Хотя я не могу использовать расширения до System.String с динамическим Linq по умолчанию.

1 Ответ

15 голосов
/ 22 ноября 2011

Можете ли вы просто .ToLower () обе стороны сравнения? Примерно так:

this.someQuery = this.someQuery.Where(field.ToLower().Contains(strValue.ToLower()));

Или я неправильно понял, что вы ищете?

...