まず第一に、これはパターンマッチングを目的としているので、完全に異なる解決策がある可能性があるので、それについて聞きたいので、それを覚えておいてください。
私はこの一連のデータを持っています(今のところそれを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が多すぎる)、これまでに説明されている「タイプ」は2つだけです(2、3か月で2倍になります)。
私が考えていた他の解決策:条件によってチェックされるさまざまな可能な変数を記述する一種のツリー/構造:
b = "xyz"
a = "abc" <
mystring < b = "xxx"
a = "cda" <
b = *
ただし、オーバーヘッドが大きく、速度が重要であるように見えます。さらに、ツリーはバイナリではなく、ワイルドカードも処理する必要があります。