gpt4 book ai didi

c# - 如何在 C# 中返回列表

转载 作者:行者123 更新时间:2023-11-30 14:23:58 25 4
gpt4 key购买 nike

我试图从一个方法返回列表。但是我只得到了列表中的最后一个迭代数据。我哪里弄错了?它会覆盖列表中每个循环的数据。

 public class ProjectData
{
public string name { get; set; }
public string id { get; set; }
public string web_url { get; set; }
}

public static List<ProjectData> GetProjectList()
{
int pageCount = 0;
bool check = true;
List<ProjectData> copy = new List<ProjectData>();
List<ProjectData> projectData = new List<ProjectData>();

while (check)
{
ProjectData NewProjectData = new ProjectData();
pageCount = pageCount + 1;
string userURL = "http://gitlab.company.com/api/v3/groups/450/projects?private_token=token&per_page=100&page=" + pageCount;
HttpWebRequest requestforuser = (HttpWebRequest)WebRequest.Create(userURL);
HttpWebResponse responseforuser = requestforuser.GetResponse() as HttpWebResponse;
using (Stream responseStream = responseforuser.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
var JSONString = reader.ReadToEnd();
projectData = JsonConvert.DeserializeObject<List<ProjectData>>(JSONString);
if (JSONString == "[]")
{
check = false;
break;
}
}
copy = projectData.ToList();
}
return copy;
}

我知道有超过 300 条数据可供填写列表。我使用断点检查了它。在那里,我发现所有数据都正确获取。但它没有复制到 copy<>列表。每一次它都在copy<>中被覆盖列表。如何防止覆盖?

最佳答案

在每次迭代中,您都会覆盖 copy 的值当前值在 projectData 中并且只会返回最后一个值。实际上projectDatacopy属于同一类型,即 List<ProjectData>因此您无需使用 .ToList() 将它们再次转换为列表.简而言之,你必须像这样使用:

copy.AddRange(projectData);

代替这个 copy = projectData.ToList();

关于c# - 如何在 C# 中返回列表 <class>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43038129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com