场景:更改与数据库表中的ID相关联的名称需要更新包含名称和ID的另一个数据库表中的零个或多个序列化JSON值(JSON对象具有不同的“方案”,但使用相同的属性链(如果需要更新,并且ID是可与对象中存储的其他键冲突的合成键)。
有没有JToken foo = json["bar"] as JToken; if ( foo != null){...
金字塔的干净替代品?
matching属性深达几层。
分配,空值检查,重复:可以,但是方法的长度超过了屏幕,并大声疾呼必须要有一种更聪明的方法。 foo["bar"]["propA"]...
是理想的选择,但在某些情况下会导致空引用。
有更紧凑的方法吗?
答案 0 :(得分:1)
空条件运算符可以大大减少您的代码:
var tkn = foo["whatever"]?["andnext"]?["andnext"]...etc.