如何在c#中将数据添加到集合列表中[重复]

Posted

技术标签:

【中文标题】如何在c#中将数据添加到集合列表中[重复]【英文标题】:How to add data into Collection list in c# [duplicate] 【发布时间】:2016-10-12 05:57:07 【问题描述】:

我正在尝试从 SQL 数据库中获取数据,我得到了 5 条记录。但是从那 5 个记录列表中,我想分别创建两个列表。我正在尝试执行以下操作:

public class ParentModel
       
     public List<Model1> Child1  get; set; 
     public List<Model2> Chil2 get; set; 

我的另外两个模型是:

public class Model1

    public int Id  get; set; 
    public string Name  get; set; 
    public int? GroupNumber  get; set; 
    public string Description  get; set; 


public class Model2

     public string Name  get; set; 
     public int? Number  get; set; 

我想填充 ParentModel 中定义的两个列表 我的服务,但它抛出空异常。如何将数据添加到我的列表中?

 public  ParentModel GetALL(int ID)
 
    ParentModel objModel = new ParentModel();

    // here I fetch data from database using Iqueryable:
    IQueryable<Products> List = this._products.GetAll();
    var NamesList = List .Where(m => m.Id == ID).ToList();

    // Here I need to add data to my list. Also if it can be
    // followed in a best possible way, Please do share it with me.

    foreach (var obj in NamesList)
    
        objModel.Child1.Add( new   Model1
        
            Id=obj.Id, // Here it throws error of null exception
            Name = obj.Name,
            GroupNumber = obj.GroupNumber,
            Description =obj.Description
        ); 

        // the other list I would like to populate at the same time is
         objModel.Chil2.Add(new Model2
        
            Name = obj.Name,
            Number = obj.Number
        );
    

【问题讨论】:

【参考方案1】:

有几种方法。最简单的方法是添加构造函数

public class ParentModel
    

        public List<Model1> Child1  get; set; 

        public List<Model2> Chil2  get; set; 

        public ParentModel()
        
            Child1 = new List<Model1>();
            Chil2 = new List<Model2>();
        

    

【讨论】:

太棒了。它工作正常。您能否解释一下为什么需要使用 new 创建这些属性,或者为什么需要首先为属性分配内存。据我所知,我们可以使用类的任何属性,而无需使用带有构造函数的 new。 正确,返回正确的属性。但是 child1 和 chil2 在第一次初始化时都是 NULL,你不能在一个 null 对象上调用 .Add。 它们是列表对象,get;set 不会初始化列表。

以上是关于如何在c#中将数据添加到集合列表中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中将 Web 服务商店调用到列表中 [关闭]

在C#中将逗号添加到整数[重复]

如何在anylogic中将nXn矩阵添加到数据库中的集合

c#如何向一个集合中添加元素

如何在 JavaScript 中将 File 对象添加到 FileList 集合中?

如何在 C# 代码中将嵌入式数据源添加到 RDL?