如何构建包含List <string>作为属性的新对象?

时间:2018-05-20 04:34:46

标签: c#

因此,在我的主form课程中,我有以下列表,其中包含用户输入:

List<string> ProduseAlese = new List<string>();

在填充之后,它将进入这个构造函数:

Comenzi comanda = new Comenzi(nrCom, dataCom, dataLiv, factura, ProduseAlese);

我的班级看起来像这样:

public class Comenzi
{
    public int NrComanda { get; set; }
    public DateTime DataComanda { get; set; }
    public DateTime DataLivrare { get; set; }
    public List<string> Articole { get; set; }
    public Facturi Factura { get; set; }

    public Comenzi(int nrcomanda, DateTime datacomanda, DateTime datalivrare, Facturi _factura, List<string> _articole)
    {
        NrComanda = nrcomanda;
        DataComanda = datacomanda;
        DataLivrare = datalivrare;
        Factura = _factura;
    }
}

我必须在构造函数中写什么?
重点是将项目从初始列表复制到新创建的对象中。

3 个答案:

答案 0 :(得分:2)

这应该有效:

public List<string> Articole { get; set; } = new List<string>();
public Facturi Factura { get; set; }

public Comenzi(int nrcomanda, DateTime datacomanda, DateTime datalivrare, Facturi _factura, List<string> _articole)
{
    NrComanda = nrcomanda;
    DataComanda = datacomanda;
    DataLivrare = datalivrare;
    Factura = _factura;
    _articole = _articole?? new List<string>();
    Articole.AddRange(_articole.ToArray());
}

答案 1 :(得分:2)

如果您想要将列表对象复制到新列表中,则可以使用ToList()命名空间中的System.Linq方法。

Articole = _articole.ToList();

答案 2 :(得分:0)

也许你不会&#34;必须&#34;使用类构造函数来提供所有对象数据,除非需要您这样做。

由于您的属性是公开的,因此您可以在创建对象

后为其赋值
Comenzi comanda = new Comenzi(nrCom, dataCom, dataLiv, factura);
comanda.Articole = ProduseAlese;

请记住,在您开发应用程序时,您的类定义可能会增长,并且不适合填充构造函数中的所有属性。您必须只保留对该类对象强制使用的那些。