【问题标题】:How can add items to a class with other class inside如何将项目添加到包含其他类的类中
【发布时间】:2017-12-17 23:28:14
【问题描述】:

我有这些元素类:

public class DataclassModeloSD
{
    public T001 tablaT001 { get; set; }
    public T001W tablaT001W { get; set; }
    public TSPAT tablaTSPAT { get; set; }
}

和其他类:

public class T001
{
    public string BUKRS { get; set; }
    public string BUTXT { get; set; }
}

public class T001W
{
    public string WERKS { get; set; }
    public string NAME1 { get; set; }
}

public class TSPAT
{
    public string SPART { get; set; }
    public string VTEXT { get; set; }
}

请问,如何向List<DataclassModeloSD> 添加元素? 我想填写一个 JSON 格式的返回列表。

谢谢。

【问题讨论】:

  • 你的DataclassModeloSD 是一个类型(类),而不是一个集合,所以你不能“向它添加东西”

标签: c# list class add


【解决方案1】:

你可以在这样的一个语句中做到这一点,

var list = new List<DataclassModeloSD>()
   {
      new DataclassModeloSD()
         {
            tablaT001 = new T001()
               {
                  BUKRS = "asdasd",
                  BUTXT = "dassdf"
               },
            tablaT001W = new T001W()
               {
                  NAME1 = "asdfsdf",
                  WERKS = "sdfsdf'
               },
            tablaTSPAT = new TSPAT()
               {
                  SPART = "dsfsdf",
                  VTEXT = "sdfdfg"
               }
         },
      new DataclassModeloSD()
         {
            tablaT001 = new T001()
               {
                  BUKRS = "hjkhjk",
                  BUTXT = "dfg"
               },
            tablaT001W = new T001W()
               {
                  NAME1 = "ghjhj",
                  WERKS = "jkl'
               },
            tablaTSPAT = new TSPAT()
               {
                  SPART = "fgh",
                  VTEXT = "dfg"
               }
         }
   };

或者其他类似的方式

var tablaT001 = new T001()
   {
      BUKRS = "asdasd",
      BUTXT = "dassdf"
   };
var tablaT001W = new T001W()
   {
      NAME1 = "asdfsdf",
      WERKS = "sdfsdf'
   };
var tablaTSPAT = new TSPAT()
   {
      SPART = "dsfsdf",
      VTEXT = "sdfdfg"
   };

var dataclassModeloSD = new DataclassModeloSD();
dataclassModeloSD.tablaT001 = tablaT001;
dataclassModeloSD.tablaT001W = tablaT001W;
dataclassModeloSD.tablaTSPAT = tablaTSPAT;

list.Add(dataclassModeloSD);

或另一个添加多个项目的示例

var modeloSD1 = new DataclassModeloSD()
     {
        tablaT001 = new T001()
           {
              BUKRS = "asdasd",
              BUTXT = "dassdf"
           },
        tablaT001W = new T001W()
           {
              NAME1 = "asdfsdf",
              WERKS = "sdfsdf'
           },
        tablaTSPAT = new TSPAT()
           {
              SPART = "dsfsdf",
              VTEXT = "sdfdfg"
           }
     };
var modeloSD2 = new new DataclassModeloSD()
     {
        tablaT001 = new T001()
           {
              BUKRS = "hjkhjk",
              BUTXT = "dfg"
           },
        tablaT001W = new T001W()
           {
              NAME1 = "ghjhj",
              WERKS = "jkl'
           },
        tablaTSPAT = new TSPAT()
           {
              SPART = "fgh",
              VTEXT = "dfg"
           }
     };

list.Add(modeloSD1);
list.Add(modeloSD2);

但是请注意:这都是非常琐碎的东西,并且有很多资源可用于此级别的编码。请务必在互联网上搜索,因为此时您会学到比提出问题更多的知识。

【讨论】:

  • 抱歉问了个小问题。我在一个灰色地带,我真的被挡住了。谢谢
  • @Gabms 更新答案,您可以通过 List.Add() 继续添加它们
【解决方案2】:

我想你的意思是创建一个新的List&lt;DataclassModeloSD&gt; 对吧?在这种情况下,您必须创建列表中的元素并使用方法Add()。像这样的:

var yourList = new List<DataclassModeloSD>();

yourList.Add(new DataclassModeloSD(){
    tablaT001 = new T001(){
        BUKRS = "Foo",
        BUTXT = "Bar"
    },
    tablaT001W = new T001W(){
        WERKS= "Foo",
        NAME1 = "Bar"
    },
    tablaTSPAT = new TSPAT(){
        SPART = "Foo",
        VTEXT = "Bar"
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 2020-05-25
    • 1970-01-01
    • 2020-01-22
    • 2022-11-25
    • 2015-10-14
    • 2017-09-26
    相关资源
    最近更新 更多