条件运算符未按预期工作
本文关键字:工作 条件运算符 | 更新日期: 2023-09-27 18:18:29
>我有以下代码,我使用条件运算符查找空值并在找到空值时分配另一个值。 我的问题是由于某种原因它没有正确检测空值。
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 的原因(
也许你需要:
!string.IsNullOrEmpty(cs.q11) ? cs.qll : "10";
使用 string.IsNullOrEmpty
的原因是因为字符串可能只是空而不是null
。
完整片段:
sliderQuestion11.Value = Convert.ToDouble(!string.IsNullOrEmpty(cs.q11) ? cs.qll : "10");
您也可以尝试以下代码:
sliderQuestion11.Value = Convert.ToDouble(cs.q11 ?? "10");
也许应该是
sliderQuestion11.Value = (cs != null && (!string.IsNullOrWhitespace(cs.q11)) ? Convert.ToDouble(cs.q11) : 10);
sliderQuestion11.Value = Convert.ToDouble(!string.IsNullOrWhiteSpace(cs.q11) ? cs.q11 : "10");
这还将检查字符串是否只包含 1 个或多个空格,以及 null 和空检查。
另一个答案::)
sliderQuestion11.Value = string.IsNullOrWhitespace(cs.q11) ? 10.0 : Convert.ToDouble(cs.q11);