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