Давайте начнем здесь.
new QueryOption("$search", filter)
То, что мы здесь делаем, - это подготовка $search
фильтра, который будет добавлен к GET-параметрам URL-адреса ... что-то вроде этого.
https:? //...Endpoint $ поиск = фильтр
Если бы в последней строке не было экранирования ... это выглядело бы так
https: //...endpoint? $ Search = категория <> Персона И категория <> Персона 2
Это не очень хорошо. нам нужны двойные кавычки вокруг строк
https: //...endpoint? $ Search = category <> «Персона» И категория <> «Персона 2»
Лучше, но нам нужны кавычки вокруг всего нашего фильтра
https: //...endpoint? $ Search = "category <>" Person "И категория <>" Person 2 ""
Doh! Теперь наш фильтр содержит двойные кавычки в начале и конце, а также двойные кавычки вокруг вложенных строк. хорошо, давайте избежим внутренних двойных кавычек.
https: //...endpoint? $ Search = "category <> \" Person \ "AND category <> \" Person 2 \ ""
Итак, теперь мы знаем, что нам нужно создать эту строку.
"категория <> \" Персона \ "И категория <> \" Персона 2 \ ""
хорошо, в C # у нас есть пара вариантов ... мы можем использовать либо обычную строку, что означает, что нам нужно будет экранировать \
и "
var x = "\"category <> \\\"Person\\\" AND category <> \\\"Person 2\\\"";
В качестве альтернативы вы можете использовать дословную строку. Это сократит количество побега, поскольку вам не нужно будет избегать ударов. В дословной строке двойные кавычки экранируются как 2 двойные последовательные двойные кавычки
var y = @"""category <> \""Person\"" AND category <> \""Person 2\""";