gpt4 book ai didi

c# - 将 stringbuilder 中的 null 值转换为 "not available"字符串

转载 作者:行者123 更新时间:2023-12-01 16:29:51 24 4
gpt4 key购买 nike

我是 C# 新手。我已经编辑了现有的代码来完成我希望它完成的大部分工作。当有数据时,它可以正常工作。但是,当 MAXGUST 和 PRECIPITATION 具有空值时,我会收到错误。 CITY 和 STATE 始终具有值(value)。是否可以在我的 StringBuilder 中插入 if/then 语句?

if (obj.Properties().Any(x => x.Name == "CITY") && obj.Properties().Any(x => x.Name == "STATE"))
{
var city1 = obj.Properties().Where(x => x.Name == "CITY").Select(y => y.Value.Value<string>()).FirstOrDefault();
var state1 = obj.Properties().Where(x => x.Name == "STATE").Select(y => y.Value.Value<string>()).FirstOrDefault();
var maxGust = obj.Properties().Where(x => x.Name == "MAXGUST").Select(y => y.Value.Value<int>()).FirstOrDefault();
var precip = obj.Properties().Where(x => x.Name == "PRECIPITATION").Select(y => y.Value.Value<float>()).FirstOrDefault();

this.Description =
new StringBuilder().Append(city1).Append(", ").Append(state1)
.Append("<br />").Append(maxGust).Append(" MPH Gust")
.Append("<br />").Append(precip).Append(" in").ToString();

}

最佳答案

您可以使用 ??运算符,如果左操作数为 null,则返回右操作数。

.Append(maxGust ?? "not available")...

<罢工>

<小时/>

编辑:上面的答案不适用于您的情况,因为 maxGust类型为int并且永远不能为空。因此,对于您当前的代码,这个问题实际上没有意义。如果有可能 maxGust没有值,它的类型应该是 int? (与 Nullable<int> 相同),并且应该修改分配它的表达式,以便在没有值时返回 null。

关于c# - 将 stringbuilder 中的 null 值转换为 "not available"字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24067533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com