2017-07-20 6 views
0

この質問はすでに一度答えられたのと似ているかもしれませんが、私の質問は、オブジェクトの配列を受け入れると、WebサービスのメソッドにArrayまたはList.ToArray()を送信することです。Webサービスメソッドに送信するときに、C#で配列を使用するか、リストを配列に変換することに違いはありますか?

私はweb serviceにプログラムの配列を送信する必要があります。

だから、ここで問題です。サービスの定義により

は、私がWebサービスに送信する必要があることを主な目的は、以下のwsdlタイプました:

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

は、次のコード間のいずれかの違いがあります:

第一オプション:

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

第二オプション:

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

サービスへの送信にはどのオプションを使用する必要がありますか?

+0

最初のオプションでforeach内のforループは意味をなさない。それは間違っています。 – hatchet

+0

オプション2では、 'programList.ToArray()'を何かに割り当てる必要があります。 – hatchet

答えて

2

リストには配列があります。 T[]をリストをループするか、List<T>のToArray()を呼び出すことで、同じことが末尾にオブジェクトT[]となります。

個人的には、リストに項目を追加してから配列を呼び出す方が好きですが、どちらの方法でも機能します。

しかし、実際に問題がどこにあるのか、どのメソッドで配列がWebサービスに送信されるのではなく、どちらの例でも問題は複数あります。

関連する問題