【发布时间】:2013-06-14 13:08:17
【问题描述】:
我有以下代码,其中我使用条件运算符来查找空值并在找到空值时分配另一个值。我的问题是由于某种原因它没有正确检测到空值。
sliderQuestion11.Value = Convert.ToDouble(cs.q11 != null ? cs.q11 : "10");
cs 是一个由 SQLite 查询填充的类,而 q11 是一个字符串。
我收到“值不能为空”错误。谢谢。
编辑
感谢大家的帮助。所有这些答案都应该有效,但我要做的不仅仅是返回
query.FirstOrDefault()
我必须做以下事情
CustomerSurvey cs = new CustomerSurvey();
cs.q1 = query.FirstOrDefault().q1 ?? "-10";
cs.q2 = query.FirstOrDefault().q2 ?? "-10";
cs.q3 = query.FirstOrDefault().q3 ?? "-10";
cs.srID = query.FirstOrDefault().srID;
现在可以了
sliderQuestion11.Value = Convert.ToDouble(cs.q11 != "-10" ? cs.q11 : "10");
(我知道你会说为什么不直接将其设置为 10,但我需要在代码中的其他位置检测空值。这就是我使用 -10 的原因)
【问题讨论】:
-
请注意,空字符串不是
null。您选择不使用??运算符是否有原因? -
试试
Convert.ToDouble(!IsNullOrEmpty(cs.q11) ? cs.q11 : "10"); -
我试过了??操作员。我一直使用它和条件运算符,但在这种情况下,无论我做什么,我都会收到“值不能为空”错误。
标签: c# entity-framework sqlite conditional-operator