【问题标题】:Handling json type which can be null or array in c#在 c# 中处理可以为 null 或数组的 json 类型
【发布时间】:2022-07-27 19:39:52
【问题描述】:

我收到来自 api 的响应,其中某些属性是列表,但是当它们为空而不是获得空列表时,我收到 null。 现在我的问题是我正在尝试创建模型的新实例,在该实例中我将该属性定义为 string[] 但 api 调用将该特定属性返回为 IReadOnlyList。

示例:让我们调用 listOfNames 的属性,该属性可以为 null 或包含名称的列表; [“亨利”,“杰克”]。 listOfNames 的类型是 IReadOnlyList。

当我尝试创建我的新实例时,例如:var newInstance = myModel(listOfName.ToArray()) 当 listOfNames 不为空时它工作正常,但当它为 null 时,ToArray() 方法会出错,因为它不能应用于 null。

如何解决这个问题,而无需在创建模型的新实例之前检查 if 语句。 现在我已经解决了这个问题

var temp = Array.Empty<string>();
if(listOfNames != null){
temp = listOfNames;
}
var instance = myModel(temp);

如果它只有一个这样的属性,上面的效果很好,但现在我有多个这样的属性,我不想用 if 语句处理每一个。

【问题讨论】:

    标签: c# arrays json


    【解决方案1】:

    您可以将空条件运算符与空合并运算符结合使用:

    var instance = MyModel(listOfNames?.ToArray() ?? Array.Empty<string>());
    

    【讨论】:

      猜你喜欢
      • 2010-12-25
      • 1970-01-01
      • 1970-01-01
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      • 2014-09-25
      • 2014-05-09
      • 2018-04-23
      相关资源
      最近更新 更多