J'ai besoin de prendre une décision basée sur un ensemble assez grand de 8 conditions co-dépendantes.Comment implémenter la matrice de décision dans 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
Chacune des conditions de A à H peuvent être vraies (1), false (0) ou non pertinent (-) pour la décision.
Donc, avec une entrée donnée de
A B C D E F G H
1 0 1 0 0 1 1 1
il doit évaluer à Decision02. Les décisions ne sont pas ambiguës et, à partir d'un ensemble donné de conditions d'entrée, il est clair que la décision doit être prise (et dans le cas où la matrice de décision ne couvre pas, une exception doit être levée).
Le développeur qui a travaillé avant moi sur ce projet a essayé d'implémenter ceci comme un béhémoth imbriqué de 500 lignes, qui bien sûr est bogué et ne peut pas être maintenu.
J'ai donc cherché la meilleure façon d'implémenter une telle logique et j'ai trouvé des tables de décision/tables de recherche/tables de contrôle.
que j'ai trouvé beaucoup de générateurs de table de décision, mais pas un seul morceau de code sur la façon de mettre en œuvre le processus de décision :(
Je peux faire la table de décision dans la base de données MSSQL sous-jacente, ou code, ou xml, ou tout ce qu'il faut. Je viens besoin de quelques conseils sur la façon de mettre en œuvre du tout.
Quelle est la meilleure pratique pour mettre en œuvre cette logique? Dictionnaire? ensemble Multidimensional? quelque chose de complètement différent
Nullable booléen est où je commencerais ... bool? Peut être vrai faux ou nul – Sayse
@Sayse By - il signifie que ce n'est pas important, par exemple il peut être 1 ou 0. –