値の辞書から数値フォームコントロールを設定しようとして問題が発生しています。私は数値コントロールの値を設定しようとする前に、対応するキーが辞書に存在するかどうかを確認できるようにしたい。3進演算子が未実行の結果を評価しないようにする方法
私の問題は、三項演算子は、それらのうちの1つだけが使用されても、両方の結果の式を評価するということです。これにより、辞書から「キーが見つかりません」という例外がスローされます。
対応するキーが存在する場合(および0でない場合)にのみ、数値形式のコントロールを辞書の値に簡単に設定できますか?
私の現在のソリューションは、おそらく辞書のキーを渡されるラッパー関数を作るために起こっているDictionary<Position, MyCoordinate> pos = DataManager.Instance.ToolChanger.GetPositionCoordinates();
pos1TNumeric.Value = pos.ContainsKey(Position.ElectrodePosition01) ? 0M : (decimal)pos[Position.ElectrodePosition01].Axes[EDMAxis.T];
pos2TNumeric.Value = pos.ContainsKey(Position.ElectrodePosition02) ? 0M : (decimal)pos[Position.ElectrodePosition02].Axes[EDMAxis.T];
pos3TNumeric.Value = pos.ContainsKey(Position.ElectrodePosition03) ? 0M : (decimal)pos[Position.ElectrodePosition03].Axes[EDMAxis.T];
pos4TNumeric.Value = pos.ContainsKey(Position.ElectrodePosition04) ? 0M : (decimal)pos[Position.ElectrodePosition04].Axes[EDMAxis.T];
pos5TNumeric.Value = pos.ContainsKey(Position.ElectrodePosition05) ? 0M : (decimal)pos[Position.ElectrodePosition05].Axes[EDMAxis.T];
(Position
はenum
とMyCoordinate
が軸のリストを含むstruct
である)、正しい小数を返します。値。私は簡単な方法があるのだろうかと思っています。ありがとう!
'3項演算子は、どちらか一方のみが使用されても、両方の結果の式を評価します。これはfalseです。そんなことはありません。そのオペランドが評価されている場合は、そのパスが取得されます。 – Servy
私はばかだと私の結果を逆転するのを忘れてしまったようです...この質問を無視してください... – EMUEVIL
@Servyあなたはまったく正しいです、私の結果を逆転するのを忘れました – EMUEVIL