2010-05-30 5 views
2

Je suis novice en matière de services Web et je suis en train d'essayer d'apprendre à en développer un en C#. J'ai la méthode suivante dans mon service web qui affiche réellement un tableau d'int quand je le teste.Affichage des valeurs de tableau à partir de la méthode de service Web

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

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

Maintenant, dans mon application web dans lequel j'ai un bouton, le code est comme ci-dessous:

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)) 

Le problème est que seule la première valeur du tableau est affiché. Quelqu'un peut-il m'aider s'il vous plaît à résoudre ce problème?

Répondre

0

Console.Write affiche uniquement une seule valeur telle qu'un entier, un nombre flottant ou une chaîne. Il ne marchera jamais à travers un tableau pour afficher chaque valeur. Au lieu de cela, vous pouvez appeler un Console.Write sur chaque entrée de votre tableau.

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

Notez que l'appel Console.Write est coûteux en ressources. Si vous avez besoin d'afficher les valeurs d'un tableau très long, vous obtiendrez peut-être de meilleurs résultats en utilisant StringBuilder class, puis en appelant Console.Write une fois.

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

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

Pourquoi un bas-vote? Quel est le problème avec ma réponse? –

0

Ceci peut être réalisé très simplement:

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