从Web服务方法显示数组值

时间:2010-05-30 15:55:09

标签: c# web-services

我是Web服务的新手,我实际上正在尝试学习如何在C#中开发一个。 我在我的Web服务中有以下方法,当我测试它时,它实际上显示了一个int数组。

[WebMethod]
    public int[] FindID(string str1,string str2)
    {
        Customer obj = new Customer();

        obj.FindMatch(str1,str2);
        return obj.customer_id;
     }

现在在我的Web应用程序中,我有一个按钮,代码如下:

Dim obj As localhost.Service = New localhost.Service
Dim str1 As String = Session("str1")
Dim str2 As String = Session("str2")
Response.Write(obj.FindID(str1, str2))

问题是只显示数组中的第一个值。有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:0)

您还可以使用带有分隔符和字符串数组的String.Join() http://msdn.microsoft.com/en-us/library/57a79xd0.aspx,并返回包含数组内部原始字符串的单个字符串,并以分隔符分隔。

答案 1 :(得分:0)

这可以非常简单地实现:

Console.WriteLine(", ", string.Join(obj.FindID(str1, str2)));

答案 2 :(得分:-1)

Console.Write仅显示单个值,如整数,浮点数或字符串。它永远不会遍历数组来显示每个值。

相反,您可以在数组中的每个条目上调用Console.Write

foreach (int value in obj.FindID(str1, str2))
{
    Console.WriteLine(value.ToString());
}

请注意,调用Console.Write资源非常昂贵。如果您需要显示一个非常长的数组的值,可能会使用StringBuilder class,然后调用Console.Write一次,从而获得更好的结果。

StringBuilder stringBuilder = new StringBuilder();
foreach (int value in obj.FindID(str1, str2))
{
    stringBuilder.AppendLine(value.ToString());
}

// Call this once.
Console.Write(stringBuilder.ToString());