在for循环中创建结构对象
本文关键字:结构 对象 创建 for 循环 | 更新日期: 2023-09-27 18:06:52
我有一些麻烦要在for循环中创建一个结构对象。我有一个UserData结构:
public struct UserData
{
public string userID { get; set; }
public string userProjects { get; set; }
public string userAccess { get; set; }
//private List<UserData> list;
public UserData(string id,string project,string access):this()
{
this.userID = id;
this.userProjects = project;
this.userAccess = access;
// list = new List<UserData>();
}
}
因此,在另一个类中,我试图在for循环中列出我的UserData结构:
Class ReadUserData
{
private List<UserData> userdata;
for (int j = 0; j < 4 ; j++)
{
userdata = new List<UserData>() { new
UserData(userID[j.ToString()],
userProject[j.ToString()],
useraccess[j.ToString()]) };
}
var firstuser = userdata.FirstOrDefault();
}
我的问题是来自userData对象的计数是1。它只创建一个对象。我的问题在哪里?你能帮忙吗?感谢
必须使用Add
方法将对象添加到列表中。当前您正在通过将新列表放入用户数据来覆盖列表
Class ReadUserData
{
private List<UserData> userdata = new List<UserData>();// create empty list
for (int j = 0; j < 4 ; j++)
{
userdata.Add(new
UserData(userID[j.ToString()],
userProject[j.ToString()],
useraccess[j.ToString()])); // add objects to the list at each iteration
}
var firstuser = userdata.FirstOrDefault();
}
有关列出如何添加的详细信息。
您正在创建一个带有一个项目的新List<UserData>
,然后将其分配给userdata
对象。你在每一次迭代中都会重复这样做,这就是为什么。
请尝试此操作(在循环外创建列表,然后Add
一次一项
Class ReadUserData
{
private List<UserData> userdata = new List<UserData>();
for (int j = 0; j < 4 ; j++)
{
userdata.Add( new
UserData(userID[j.ToString()],
userProject[j.ToString()],
useraccess[j.ToString()]) );
}
var firstuser = userdata.FirstOrDefault();
}