首先,这是用于模式匹配的,所以请记住这一点,因为您可能有一个完全不同的解决方案,我想听听。
我有这一系列数据(我们暂时称它为 mystring)。
string a = get_starting_letters(mystring)
string b = get_ending_letters(mystring)
bool c = check_code_appears(mystring)
.
.
.
and so on
我想要一个像这样工作的字典/真值表(* 表示通配符)。
key (a,b,c...) value
"abc", *, True = "type a string"
"abc", "xyz", True = "type b string"
*, "xyz", True = "type m string"
这如何在 C# 中实现?我知道这对于 F# 来说是非常微不足道的,但是这个代码将来可能会被只知道 C# 的人更新。
我为什么要这样做?因为当前的代码变得难以遵循和更新(嵌套的 if、else、else if 太多),并且到目前为止只描述了几个“类型”(它将在几个月内翻倍)。
我一直在考虑的其他解决方案:一种树/结构,描述了由条件检查的不同可能变量:
b = "xyz"
a = "abc" <
mystring < b = "xxx"
a = "cda" <
b = *
然而,它似乎会产生很大的开销,并且速度对此很重要,此外,树不会是二进制的,并且也需要处理通配符。