2017-07-20 24 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服务的数组。

相关问题