Как использовать метод Odata contains во всех/любых методах, если у меня есть несколько значений, которые может содержатC#

Место общения программистов C#
Anonymous
Как использовать метод Odata contains во всех/любых методах, если у меня есть несколько значений, которые может содержат

Сообщение Anonymous »

У меня есть массив товаров, каждый из которых имеет поле «TargetId».
Отдельный список идентификаторов тарифов:

Код: Выделить всё

[123,345,567,789]
Мне нужно отфильтровать элементы, содержащие часть одного из этих идентификаторов (а не равенство).
Если я хочу проверить равенство, запрос будет выглядеть так:

Код: Выделить всё

qOrder.orderItems.all((qOrderItem) =>
qOrderItem.tariffId.in(...tariffIds))
)
Если я использую метод CONTAINS вместо IN и просто распределяю массив внутри него, запрос принимает только первый встреченный тарифный идентификатор вместо того, чтобы объединять его в цепочку с помощью оператора OR, как в операторе IN.

Код: Выделить всё

qOrder.orderItems.all((qOrderItem) =>
qOrderItem.tariffId.contains(...tariffIds))
)
Во-первых, машинописный текст не позволяет мне печатать таким образом. Во-вторых, если я проигнорирую ts, мой запрос превратится в orderItems/all(a:contains(a/tariffId,'9341')) содержащий только один из тарифов.
Есть ли способ Я могу использовать метод ALL или ANY с несколькими содержащими запросами?

Подробнее здесь: https://stackoverflow.com/questions/784 ... l-values-a

Вернуться в «C#»