Добавьте или условие к объекту в платформе объекта

Можно ли добавить "Или" условие к объекту в платформе объекта? Например, что-то как:

Property1 == (1 или 2 или 3)

Сообщение я добираюсь при помещении значения "1 || 2 || 3" или "1,2,3" или "1 или 2 или 3" возврата это сообщение:

condition is not compatible with the type of the member
6
задан Blake Blackwell 2 April 2010 в 19:44
поделиться

3 ответа

Вам нужно сделать:

var results = entityCollection.Where(entity => entity.Property1 == 1 || entity.Property1 == 2 || entity.Property1 == 3);
12
ответ дан 8 December 2019 в 04:29
поделиться

Не пробовал, но вы можете попробовать использовать contains . Не уверен в производительности, но код меньше:

int[] vals = new int[] { 1, 2, 3, 4 };
var results = entityCollection.Where(entity => vals.Contains(entity.Property1));
3
ответ дан 8 December 2019 в 04:29
поделиться

Вам также следует ознакомиться с конструктором предикатов: http://www.albahari.com/nutshell/predicatebuilder.aspx

Он немного более продвинутый, но если вам нужно динамически связывать условия, это лучший выбор.

foreach (string keyword in keywords)
  {
    string temp = keyword;
    predicate = predicate.Or (p => p.Description.Contains (temp));
  }
10
ответ дан 8 December 2019 в 04:29
поделиться
Другие вопросы по тегам:

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