c#空条件运算符

时间:2017-01-07 18:07:13

标签: c#

我正在尝试使用Null条件运算符(?),但我不确定将它放在哪里separators.Contains(textLine[(index - 1)])。我想说"如果(textLine[(index - 1)])不是null,请继续"。一些帮助?

3 个答案:

答案 0 :(得分:5)

这不是Null-conditional Operators的工作方式。

Null-conditional运算符,如果其中一个父标记带有前缀?,则只返回null而不是异常。是 == null

示例:

var g1 = parent?.child?.child?.child; 
if (g1 != null) // TODO

您需要的是一个简单的 IF条件

if (!string.IsNullOrEmpty(textLine))
{
    // Work here
}

答案 1 :(得分:1)

MSDN Docs的第二个例子应该回答你的问题:

 Customer first = customers?[0];  // null if customers is null  

答案 2 :(得分:1)

如果你的意思是不调用contains方法,如果数组中的值为null,那么你必须先检查它。

// requires possible bounds checking
char? test = textLine?[index-1];
if (test != null && separaters.Contains(test.Value))

使用linq:

// does not require bounds checking
char test = textLine?.Skip(index-1).FirstOrDefault() ?? default(char);
if (test != default(char) && separaters.Contains(test))