我正在尝试使用 Web 服务构建控制台应用程序。它使用2个功能。第一个 GetAllProject
输出 ptojectsID 和 ProjectsNames。
第二个函数是 GetUsersList
,它输出用户列表。它需要通过调用第一个函数请求的 projectID 作为强制参数。
我想做的是将项目 ID、项目名称和用户 ID 总数输出到 CSV 文件中。
当我运行控制台时,它运行良好,但在用户 ID 总数列中,我得到的输出是 System.String[]
。
我不知道我能做些什么而不是在每一行 System.String[]
上提取与每个项目 ID 对应的用户 ID 的实际总数
我不知道如何做到这一点。这是我的代码。
string outCsvFile = string.Format(@"C:\\test\\test.csv");
WS.Projects[] pr = db.GetAllProject();
using (StreamWriter file = new StreamWriter(outCsvFile))
{
for (int i = 0; i < pr.Length; ++i)
{
string[] subecjtsIDS = new string[] {""};
subecjtsIDS = db.GetUsersList(pr[i].ProjectID);
file.WriteLine(pr[i].ProjectID + ',' + pr[i].ProjectTitle + ',' + subecjtsIDS);
}
}
最佳答案
如果我正确地解释了您的要求,那么您并不是在尝试求和用户 ID(这没有意义),您只是在尝试列出 它们作为 CSV 行的一部分。假设这是正确的...
问题是这一行
file.WriteLine(pr[i].ProjectID + ',' + pr[i].ProjectTitle + ',' + subecjtsIDS);
正在尝试将字符串数组连接到字符串上。为此,.NET 将调用数组的 .ToString()
。方法,并且对于框架中的大多数引用类型,这仅打印类型的名称,即“System.String[]”。
相反,您需要迭代数组并打印其内容。 String 类提供了一个很好的方法来做到这一点:Join()
方法:
file.WriteLine(pr[i].ProjectID + ',' + pr[i].ProjectTitle + ',' + String.Join(",", subecjtsIDS));
但是,如果您尝试将与每个项目关联的主题数 添加到每一行,您只需要 Length
数组的:
file.WriteLine(pr[i].ProjectID + ',' + pr[i].ProjectTitle + ',' + subecjtsIDS.Length);
关于c# - 使用 C# 的字符串数组的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32336879/