短手如果声明没有别的

时间:2011-11-16 14:43:46

标签: c# linq lambda

我正在尝试使用if语句来创建表达式查询,如果test为null,则访问器会导致错误。

test != null ? test.Contains("mystring") : NO_VLAUE

我正在寻找:

test != null ? test.Contains("mystring")

otherwise ignore.

我知道我可以??使用is null,但是有反转。

提前致谢。

2 个答案:

答案 0 :(得分:8)

听起来你想要test != null && test.Contains("mystring")

您提出的问题没有意义。所有表达式(包括条件运算符)都必须具有值。如果test为空,您期望该表达式评估什么?

如果test为null,您可能希望它为false 换句话说,如果test不为null且包含mystring,则希望它为true。

答案 1 :(得分:7)

这听起来像可能想要的那样:

test != null && test.Contains("mystring")

如果false为空,那将评估为test - 这是你想要的吗?基本上,如果test 为null,您需要说明您想要发生什么,否则它不能用作表达式。