在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。它只创建一个对象。我的问题在哪里?你能帮忙吗?感谢

在for循环中创建结构对象

必须使用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();
}