質問: 私のプロジェクトには`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が管理しました。エラー処理も悪くありません。不足している演算子などの例外... 利用可能な演算子