用嵌套对象构建对象c# -如何向发票添加行项

本文关键字:对象 添加行 嵌套 构建 | 更新日期: 2023-09-27 18:04:14

我试图建立一个发票列表,但每个发票都有一个LineItems列表,我可以问一下如何添加嵌套对象的指导吗?

我正在努力弄清楚谁将LineItems添加到发票中,如下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace myNS
{
    class Invoice
    {
        public int id;
        public int value;
        List<LineItem> li = new List<LineItem>();
    }
    class LineItem
    {
        public int LineItemID;
        public int LineItemValue;
        public int LineItemQty;
    }
    class Class1
    {
        static void Main(string[] args)
        {
            var items = new[]
            {
            new Invoice{id=1, value =30}, //how to insert LineItems here
            new Invoice{id=2, value =10},
            new Invoice{id=3, value =20}
            };
        }
    }
}

用嵌套对象构建对象c# -如何向发票添加行项

如前所述,您的列表需要是公开的。

public class Invoice
{
    public int id;
    public int value;
    public List<LineItem> li = new List<LineItem>(); //<-- here
}

这将允许您访问它。

添加一个项目到列表-你有两个选择。

1)在初始化时创建一个新的列表,并将项目放入其中。

static void Main(string[] args)
{
    var lineitem = new LineItem();
    var items = new[]
    {
    new Invoice{id=1, value =30, li = new List<LineItem>{lineitem}}, //<-- like this
    new Invoice{id=2, value =10},
    new Invoice{id=3, value =20}
    };
}

2)在初始化后将项添加到现有列表:

static void Main(string[] args)
{
    var lineitem = new LineItem();
    var items = new[]
    {
    new Invoice{id=1, value =30},
    new Invoice{id=2, value =10},
    new Invoice{id=3, value =20}
    };
    items[0].li.Add(lineItem);//<-- like this
}

试试这个…注意li需要是一个公共列表

class Invoice
{
    public int id;
    public int value;
    public List<LineItem> li = new List<LineItem>();
}
class LineItem
{
    public int LineItemID;
    public int LineItemValue;
    public int LineItemQty;
}
class Class1
{
    static void Main(string[] args)
    {
        var items = new[]
        {
        new Invoice{id=1, value =30, li = new List<LineItem>{new LineItem{LineItemID = 1, LineItemValue =2,LineItemQty = 3}}}, //how to insert LineItems here
        };
    }
}