Использование linq для проверки свойства по одному из нескольких возможных значений - PullRequest
0 голосов
/ 29 апреля 2020

Использование linq для проверки свойства по одному из нескольких возможных значений. В таком случае когда статус 2 или 3? Можно ли это сделать без оператора или?

var x = (from b in books
         where b.statusCode.Contains(2, 3))
         select new ...

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

Это можно сделать так (при условии, что statusCode имеет значение int)

var values = new int[] { 2, 3 };

var x = (from b in books
     where values.Contains(b.statusCode))
     select new ...

или Вы можете попытаться встроить его так:

    var x = (from b in books
     where (new int[] { 2, 3 }.Contains(b.statusCode)))
     select new ...
1 голос
/ 29 апреля 2020

Вы можете настроить список значений как List<int>, назвать его как ValueList, а затем в строке где:

where ValueList.Contains(b.statusCode)

Это должно сравнить statusCode для всех значений списка и возвращает соответствующие записи, и вы получаете преимущество динамического списка c, который может быть сброшен с другими значениями для возврата коллекций других кодов состояния.

...