elvis 演算子、別名 null 条件演算子は非常にクールです。
LINQ クエリでは、null 合体 "??" と連携してうまく機能します。オペレーター。
Somedata.Where(dt=>(dt?.Inner?.InnerMost?.Include=="Yes")??false);
しかし、中間値をキャストする必要がある場合はどうすればよいでしょうか?
チェーンの 1 つのリンクについては、問題なく動作します。
Somedata.Where(dt=>(
((InnerClass)dt?.Inner)
?.InnerMost)?.Include=="Yes")
??false);
ただし、必要なキャストを追加すると、キャストと呼び出しが「離れて」しまいます。
Somedata.Where(dt=>(
((InnerMostClass) <=== Cast
((InnerClass)dt?.Inner)
?.InnerMost)?.Include=="Yes")) <=== Use
??false);
おそらくここで括弧を何度も台無しにしましたが、理解していただければ幸いです。
この「列車事故」呼び出しチェーンはコードの匂いがしますが、簡潔さと明確さを改善するためにこれを行うより表現力豊かな方法はありますか?