2017-07-20 48 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

列表由數組支持。通過在列表中循環或通過調用List<T>上的ToArray()來填充數組T[]將在末尾產生一個對象T[]

個人而言,我更喜歡將項目添加到列表然後調用數組,但任何方法都可以工作。

然而,您提供的兩個示例存在多個問題,實際上可能存在問題的位置,而不是在哪個方法中產生要發送到Web服務的數組。

相關問題