替代“??”对于不可为空的类型(例如,在查找字典键时)
Alternative of "??" for non nullable types (e.g. when looking up dictionary keys)
像这样使用内联糖非常方便:obj?.func();
和obj ?? anotherObj
但我正在尝试寻找相同方法的替代方法,以防万一我想从字典中提取数据而不知道字典是否具有我要查找的键。
具体来说,我想做的事情相当于:
someDictionary[someKey] ?? anotherValue
这样,如果 key 存在,它将使用字典中的相应值,如果不存在,它将使用 anotherValue
。显然不可能像我在这里写的那样使用,因为它没有意义,但它背后的想法是合理的。
有没有办法简化它以内联使用,而无需单独检查 if
?
如果用三元运算符检查就可以替换
var value = someDictionary.TryGetValue(someKey, out var val) ? val : anotherValue;
像这样使用内联糖非常方便:obj?.func();
和obj ?? anotherObj
但我正在尝试寻找相同方法的替代方法,以防万一我想从字典中提取数据而不知道字典是否具有我要查找的键。
具体来说,我想做的事情相当于:
someDictionary[someKey] ?? anotherValue
这样,如果 key 存在,它将使用字典中的相应值,如果不存在,它将使用 anotherValue
。显然不可能像我在这里写的那样使用,因为它没有意义,但它背后的想法是合理的。
有没有办法简化它以内联使用,而无需单独检查 if
?
如果用三元运算符检查就可以替换
var value = someDictionary.TryGetValue(someKey, out var val) ? val : anotherValue;