如何在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#中将数据添加到集合列表中[重复]的主要内容,如果未能解决你的问题,请参考以下文章