2017-07-20 4 views
0

Diese Frage ähnelt möglicherweise bereits einmal beantwortet, aber meine Frage bezieht sich auf das Senden von Array oder List.ToArray() an die Web-Service-Methode, wenn es Array von Objekten akzeptiert.Gibt es einen Unterschied zwischen der Verwendung von Arrays oder dem Konvertieren einer Liste in ein Array in C# beim Senden an eine Web-Service-Methode?

So, hier ist die Frage:

Ich muss eine web service Reihe von Programmen senden.

von Service-Definition, das Hauptziel, dass ich an einen Webdienst senden müssen ist folgendes wsdl Typ:

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

Gibt es einen Unterschied zwischen den folgenden Codes:

1. 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. 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); 

Welche Option muss ich zum Senden an den Dienst verwenden?

+0

Die for-Schleife in der foreach in Ihrer ersten Option macht keinen Sinn für mich. Es sieht falsch aus. – hatchet

+0

In Option 2 müssen Sie 'programList.ToArray()' etwas zuweisen. – hatchet

Antwort

2

Eine Liste wird von einem Array unterstützt. Das Auffüllen eines Arrays T[] durch das Durchlaufen einer Liste oder das Aufrufen von ToArray() auf einem List<T> wird das gleiche zu einem Objekt T[] am Ende führen.

Persönlich bevorzuge ich es, Elemente zu einer Liste hinzufügen und dann Array aufrufen, aber beide Methoden funktionieren.

Es gibt jedoch mehrere Probleme mit den beiden von Ihnen bereitgestellten Beispielen, bei denen es sich möglicherweise um die Probleme handelt, und nicht, bei welcher Methode ein Array an einen Webdienst gesendet wird.

Verwandte Themen