如何在 C# 模型类中设置数组属性的值

Posted

技术标签:

【中文标题】如何在 C# 模型类中设置数组属性的值【英文标题】:How to set the values for array-attributes in C# Model Class 【发布时间】:2018-11-05 21:28:31 【问题描述】:

我有一个模型类(Json 转换为 C# 类),其中我有一个数组及其属性。

现在的问题是我需要设置这个数组的值 atrributesfieldIdfieldValue 存在于名为 optionalFields 的数组中。

提醒一下,我已经编写了一个构造函数,我可以在其中初始化变量,这是一个直接的镜头,但我尝试了几种方法来设置数组属性的值,但我实际上是在浪费时间。

下面是 Json :


  "entityId": "1234",
  "inventoryId": "4567",
  "saleAccount": "SAA",
  "saleGroup": "SLL",
  "inventoryAccount": "IA1000",
  "workInProcess": 0,
  "isGlApplied": false,
  "optionalFields": [
    
      "fieldId": "29",
      "fieldValue": "290"
    
  ],


下面是上述json的模型类:

public class Acct_Det_Widget_Post_Insert_Json

    public string entityId  get; set; 
    public string inventoryId  get; set; 
    public string saleAccount  get; set; 
    public string saleGroup  get; set; 
    public string inventoryAccount  get; set; 
    public int workInProcess  get; set; 
    public bool isGlApplied  get; set; 
    public Optionalfield[] optionalFields  get; set; 

    public string vehicleId  get; set; 

    public Acct_Det_Widget_Post_Insert_Json()
    
        this.entityId = "1234";
        this.inventoryId = "34521";
        this.saleAccount = "SAA";
        this.saleGroup = "SLL";
        this.inventoryAccount = "IA1000";
        this.workInProcess = 0;
        this.isGlApplied = false;             
    



public class Optionalfield

    public string fieldid  get; set; 
    public string fieldvalue  get; set;     


我可以设置其他字段的值,但我无法设置此 OptionalField 数组属性的值。

请尽快帮我解决问题。

【问题讨论】:

你试过直接 JSON 反序列化吗? new System.Web.Script.Serialization.javascriptSerializer().Deserialize("你的 JSON 字符串变量放在这里"); “我无法为...设置值”是什么意思?为什么?你试过什么?你有任何错误或异常吗? 我知道 JSON 反序列化的部分,但由于我是一只刚开始学习 C# 的新蜜蜂,我在设置数组属性的值时被打动了 我错过了没有初始化数组,从java到C#的语法有点不同,开始习惯了。 【参考方案1】:

为了设置数组的值,首先必须对其进行初始化。

public Optionalfield[] optionalFields  get; set;  = new Optionalfield[1];

如果您想添加超过 1 个值,只需将 1 更改为您需要的任何值。

接下来,在您的构造函数中,您可以按如下方式分配值:

optionalFields[0] = new Optionalfield();
optionalFields[0].fieldid = "29";
optionalFields[0].fieldvalue = "290";

请注意,您必须创建该类的一个实例并将其分配给数组的有效索引。在这种情况下,数组初始化为 1 个元素,您将实例分配给第一个 (0) 元素。

【讨论】:

嗨 Rik,非常感谢,它成功了,我错过了我没有初始化数组。我刚刚开始学习 C#。

以上是关于如何在 C# 模型类中设置数组属性的值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 swift 4 中的 UserDefalts 中设置自定义类数组数据

如何在映射模型中设置反向关系的值?

如何正确命名包含返回从此类中设置的源中选择的值并以相同方式设置源值的属性的类?

如何在 Tensorflow 中设置 batch_size 属性

如何使用 C# 在 OpenOffice.org uno 中设置 XTextTable 的属性?

c#如何重写类?