私のプロジェクトにはLogic evaluation
セクションがあり、 logical expressions
( true/false
)を含む文字列として入力を受け取ります。
この文字列を評価して、最終的なブール値を返したいのですが。
string Logic="1&0|1&(0&1)"
//string Logic="true AND false OR true AND (false AND true)"
これは私のLogic
ます。長さが長くなる場合があります。
LINQ / Dynamic LINQ
からこの式を評価する方法はありますか?
サードパーティのライブラリを使用しない方法は、式でDataTableを使用することです。
ブール値だけでなく、他の結果値タイプを評価する可能性さえあります。
System.Data.DataTable table = new System.Data.DataTable();
table.Columns.Add("", typeof(Boolean));
table.Columns[0].Expression = "true and false or true";
System.Data.DataRow r = table.NewRow();
table.Rows.Add(r);
Boolean result = (Boolean)r[0];
式の構文は例と同じではありませんが、同じことを行います。利点は、その100%.NETフレームワークが含まれていることです-> Microsoftが管理しました。エラー処理も悪くありません。不足している演算子などの例外...