发送到 Web 服务方法时,在 C# 中使用数组或将列表转换为数组之间有什么区别吗?

Is there any difference between using Arrays or converting a list to an Array in C# when sending to a web service method?

这个问题可能类似于已经回答过一次,但我的问题是关于在接受对象数组时将数组或 List.ToArray() 发送到 Web 服务的方法。

那么问题来了:

我需要将程序数组发送到 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);

我需要使用哪个选项来发送到服务?

列表由数组支持。通过遍历列表或在 List<T> 上调用 ToArray() 来填充数组 T[] 将在末尾产生对象 T[] 的相同结果。

就我个人而言,我更喜欢将项目添加到列表中,然后调用数组,但这两种方法都可以。

然而,您提供的两个示例都存在多个问题,这些问题实际上可能出在问题所在,而不是哪个方法会生成要发送到 Web 服务的数组。