вычислить выражение xor с использованием DataTable в C# - PullRequest
0 голосов
/ 01 августа 2020

Я хочу вычислить логическое выражение, например (true xor false) Я использовал DataTable, но он не поддерживает xor. Как я могу вычислить xor выражений?

System.Data.DataTable table = new System.Data.DataTable();
var result = table.Compute("( False xor True) ", "");

1 Ответ

1 голос
/ 01 августа 2020

Вы пытаетесь разобрать строку, содержащую логическое выражение C#. Есть несколько способов сделать это:

  1. Поскольку ваше логическое выражение использует только различные комбинации true , false , и , или и xor , используя круглые скобки, вы можете развернуть свой собственный синтаксический анализатор. Должна быть довольно тонкая функция.

  2. Если вы используете это в контексте DataTable, как видно из тегов вопросов, есть встроенная функция под названием Compute который может принимать простые выражения и оценивать их за вас. XOR по умолчанию недоступен в списке поддерживаемых операторов, но вы можете написать эквивалентное выражение, используя не равно operator (<>). Remmber A ^ B эквивалентен (A <> B) в контексте логических выражений DataTable.

  3. Вы можете использовать встроенный Roslyn -in, а также анализировать и оценивать буквально любое C# выражение во время выполнения.

...