我有一些麻烦在for循环中创建一个struct对象。 我有一个UserData Struct:
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 Struct列表:
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.它只创建1个对象。 你能解决我的问题在哪里? 感谢
答案 0 :(得分:0)
您必须使用Add
方法将对象添加到列表中。目前,您通过将新列表添加到userdata
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();
}
答案 1 :(得分:0)
您正在创建一个包含一个项目的新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();
}