我正在尝试将null值传递给float数据类型,如下所示,
float? period_final_value = null;
从解析xml字符串中获取 period_final_value 中的值,如下所示
var action = xmlAttributeCollection_for_period["value"];
xmlActionsone[j] = action.Value;
period_final_value = float.Parse(action.Value);
然后将此获得的值添加到列表中,如下所示
serie_line.data.Add(period_final_value);
按如下方式定义我的清单
var serie_line = new { name = series_name, data = new List<float?>() };
现在,我的问题是,当我尝试传递值时,它会被添加到列表中,并且当没有识别出值时,它应该添加null,其值在列表中的空值位置但我不喜欢#39;我知道我无法正常工作......我的网络服务崩溃了,它会反击任何空白值...任何帮助将不胜感激......
plz note ... var serie_line ..我将序列化为JSON格式,以便我可以使用这些值来绘制图表。
答案 0 :(得分:1)
听起来您可能正在寻找TryParse
而不是Parse
。
当您致电period_final_value = float.Parse(action.Value);
时,Parse
会将字符串解析为float
或抛出异常。它永远不会返回null
。
要获得所需的行为,请尝试以下方法:
float temp_value = 0;
float? period_final_value = null;
if (float.TryParse(action.Value, out temp_value)) {
period_final_value = temp_value;
}
serie_line.data.Add(period_final_value);
如果action.Value
是数字的字符串表示,则period_final_value
将是该数字。否则,它将是null
。然后,您可以将其添加到float?
值列表中。
答案 1 :(得分:0)
在这一行
float? period_final_value = float.Parse(action.Value);
你正在失去可空的浮动。当它无法解析(没有值或值不是有效的float)时,它抛出而不是返回null。 period_final_value
永远不会将null
作为值。
请参阅gleng的答案,以便能够将null设置为period_final_value
。