Мне нужно принять решение на основе довольно большого набора из 8 зависимых друг от друга условий.Как реализовать матрицу решений в C#
| A | B | C | D | E | F | G | H
-----------+---+---+---+---+---+---+---+---
Decision01 | 0 | 1 | - | 1 | 0 | 1 | - | 1
Decision02 | 1 | 0 | - | 0 | 0 | - | 1 | -
...
Decision11 | 1 | 0 | 1 | 1 | 1 | - | 1 | 1
Каждое из условий от А до Н может быть истинным (1), ложь (0) или нерелевантными (-) для решения.
Так с данным входом
A B C D E F G H
1 0 1 0 0 1 1 1
должно вычисляться Decision02.
Решения недвусмысленны, поэтому из любого заданного набора условий ввода ясно, какое решение необходимо принять (и в случае, когда эта матрица не охвачена, возникает исключение).
Разработчик, который работал до меня в этом проекте, попытался реализовать это как 500-строчный длинный вложенный, если бегемот, который, конечно, глючит, и не ремонтируется.
Итак, я искал лучший способ реализовать такую логику, и я столкнулся с таблицами решений/таблицами поиска/таблицами управления.
Я нашел много столов решения генераторов, но ни один кусок кода, о том, как реализовать решение процесса :(
сделать я могу сделать таблицу решений в основной базе данных MSSQL, или в код, или XML, или все, что нужно. Мне просто нужно несколько советов о том, как реализовать это на всех.
Что лучшие практики для реализации этой логики? словарь? многомерный массив? Что-то совсем другое?
Nullable boolean - это то, где я бы начал ... bool? Может быть true false или null – Sayse
@Sayse By - он означает, что это не важно, например, оно может быть 1 или 0. –