因此,在我的主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;
}
}
我必须在构造函数中写什么?
重点是将项目从初始列表复制到新创建的对象中。
答案 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;
请记住,在您开发应用程序时,您的类定义可能会增长,并且不适合填充构造函数中的所有属性。您必须只保留对该类对象强制使用的那些。