[英]c# List adding items using For loop
我在使用c#列表时遇到问题,不确定将新对象添加到Managepagesid列表时缺少了什么地方!
public class Clients
{
[BsonId]
public string Id { get; set; } //Object ID managed by MongoDb
public string Name { get; set; } //Client Name
public string Phone { get; set; } //Client Phone
public string Email { get; set; } //Client E-mail
public string Username { get; set; } //Client Username
public DateTime LastModified { get; set; } //Client Last Login
public string FB_User_Id { get; set; } //Client FB User ID
public AccessToken UserAccessToken { get; set; } //AccessToken which is stored while user is logged in.
public List<ManagePages> Manage_Pages_id { get; set; } //The pages maintained by the specific client
}
我正在尝试访问将新项目添加到ManagePage_id列表中,但它抛出了一些空异常。
Clients client = new Clients();
client.FB_User_Id = FBData.id;
client.Name = FBData.name;
client.Email = FBData.email;
client.Username = FBData.username;
for (int index = 0; index < FBData.accounts["data"].Count; index++)
{
ManagePages pagedetails = new ManagePages()
{
page_id = FBData.accounts["data"][index].id,
page_name = FBData.accounts["data"][index].name,
ManagePages_AccessTokens = new AccessToken()
{
AccessToken_accessToken = FBData.accounts["data"][index].access_token,
AccessToken_expiryDate = DateTime.Now
},
ManagePages_category = FBData.accounts["data"][index].category
};
var category = pagedetails.ManagePages_category;
client.Manage_Pages_id.Add(pagedetails);
}
堆栈跟踪已添加!
Exception> System.NullReferenceExceptionObject引用未设置为对象的实例。 在g:\\ Development \\ Vega_MongoDB \\ Vega_MongoDB \\ FBDataAccess \\ ClientFBRepository.cs:第48行的Vega_MongoDB.FBDataAccess.ClientFBRepository.ClientsData(字符串accessToken)处,在g:\\ Development \\ Vega_MongoDB的Vega_MongoDB.Models.ClientRepository..ctor(字符串连接)处的第48行\\ Vega_MongoDB \\ Models \\ Clients \\ ClientRepository.cs:第47行,位于g:\\ Development \\ Vega_MongoDB \\ Vega_MongoDB \\ Models \\ Clients \\ ClientRepository.cs:Vega_MongoDB.Models.ClientRepository.ctor()中的Vega_MongoDB.Controllers.ClientsController g。\\ Development \\ Vega_MongoDB \\ Vega_MongoDB \\ Controllers \\ ClientsController.cs中的..cctor():第18行
我已经检查了pagedetails对象,它包含所有数据。
谢谢
毗湿奴
您应该在添加项目之前创建列表的实例:
client.Manage_Pages_id = new List<ManagePages>();
for (int index = 0; index < FBData.accounts["data"].Count; index++)
{
ManagePages pagedetails = new ManagePages()
{
page_id = FBData.accounts["data"][index].id,
page_name = FBData.accounts["data"][index].name,
ManagePages_AccessTokens = new AccessToken()
{
AccessToken_accessToken = FBData.accounts["data"][index].access_token,
AccessToken_expiryDate = DateTime.Now
},
ManagePages_category = FBData.accounts["data"][index].category
};
var category = pagedetails.ManagePages_category;
client.Manage_Pages_id.Add(pagedetails);
}
尝试将其添加到您的班级:
public Clients()
{
this.Manage_Pages_id = new List<ManagePages>();
}
您需要先初始化列表,然后再添加任何内容。 您可以在Clients
类的构造函数中或在您的调用代码中进行此操作(如Artem建议的那样)。
public class Clients
{
//properties
public Clients()
{
Manage_Pages_id = new List<ManagePages>();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.