2017-07-20 3 views
0

Cette question peut être similaire à déjà répondu une fois, mais ma question concerne l'envoi de Array ou List.ToArray() à la méthode du service Web lorsqu'il accepte un tableau d'objets.Y a-t-il une différence entre l'utilisation de tableaux ou la conversion d'une liste en tableau en C# lors de l'envoi à une méthode de service Web?

Alors, voici la question:

Je dois envoyer ensemble de programmes à un web service.

Par définition de service, l'objet principal, que je dois envoyer à un service Web a le type wsdl suivant:

<xsd:element name="Pgms" type="ns1:ArrayOfPrograms" nillable="true" minOccurs="0"/> 

est-il une différence entre les codes suivants:

1ère option:

List<string> programList = insertRow["programName"].ToString().Trim().Split(',').ToList(); 
Program [] programArray = new Program[programList.Count]; 
foreach(var program in programList) 
{ 
     Program programObj = new Program(); 
     programObj.Item1 = item1; 
     programObj.Item2 = program.ToString().Trim(); 
     for(int i = 0; i <= programList.Count; i++) 
     { 
      programArray[i] = programObj; 
     } 
} 

webserviceMethod.send(mainObject); 

2ème option:

List<string> programList = insertRow["programName"].ToString().Trim().Split(',').ToList(); 
List<Program> programList = new List<Program>(); 
foreach(var program in programList) 
{ 
    Program programObj = new Program(); 
    programObj.Item1 = item1; 
    programObj.Item2 = program.ToString().Trim(); 
    programList.Add(programObj); 
} 
programList.ToArray(); 
webserviceMethos.send(mainObject); 

Quelle option dois-je utiliser pour envoyer au service?

+0

La boucle for à l'intérieur de la foreach dans votre première option n'a pas de sens pour moi. Ça a l'air faux. – hatchet

+0

Dans l'option 2, vous devez assigner 'programList.ToArray()' à quelque chose. – hatchet

Répondre

2

Une liste est soutenue par un tableau. Remplir un tableau T[] en faisant une boucle dans une liste ou en appelant ToArray() sur un List<T> aura pour résultat la même chose un objet T[] à la fin.

Personnellement, je préfère ajouter des éléments à une liste, puis appeler à la matrice, mais l'une ou l'autre méthode fonctionnera. Cependant, il existe plusieurs problèmes avec les deux exemples que vous fournissez, qui peuvent en réalité être là où se trouvent les problèmes, et non dans quelle méthode va générer un tableau à envoyer à un service Web.