c# - 使用 C# 的字符串数组的总和

标签 c# web-services visual-studio-2012 streamwriter subtotal

我正在尝试使用 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/

相关文章:

visual-studio-2012 - "LoaderLock was detected"使用 Visual Studio 2012

c# - 如何在 Windows 安装程序中放置单选按钮 - 部署项目?

c# - 无法从我想要的位置的锯齿状数组中获取值,但我在其他位置获取了它

c# - ServiceStack:依赖调用

tfs - TFS 2012-如何判断变更集是否经过代码审查?

c# - 代码契约(Contract)似乎不适用于 VS2012

javascript - 我怎样才能得到asp :Panel to work properly with asp:RadioButtonList without AutoPostBack?

java - 如何为 Java RESTful Web 服务发送 HTTP 错误?

java - 如何使用基于 Java 的客户端使用 .NET(C#) 创建 SOAP Web 服务?

java - Web 服务客户端设计模式(最佳实践)