C# 调用web应用程序时出错:无法转换System.Collections.Generic.List<;字符串>;串

C# 调用web应用程序时出错:无法转换System.Collections.Generic.List<;字符串>;串,c#,asp.net,web-services,web-applications,C#,Asp.net,Web Services,Web Applications,我有一个web服务和一个web应用程序。 web服务具有以下代码: List<string> listCen =new List<string>(); serviciowebclienteKmeans.ServicioWebKmeans serv = new serviciowebclienteKmeans.ServicioWebKmeans(); serv.Parameters(element, number, out listCen); List listCen=

我有一个web服务和一个web应用程序。
web服务具有以下代码:

List<string> listCen =new List<string>();
serviciowebclienteKmeans.ServicioWebKmeans serv = new serviciowebclienteKmeans.ServicioWebKmeans();
 serv.Parameters(element, number, out listCen);
List listCen=new List();
ServicioWebClientEmeans.ServicioWebKmeans serv=新的ServicioWebClientEmeans.ServicioWebKmeans();
服务参数(元素、编号、输出列表CEN);
我不需要输入更多不必要的细节,在我的web应用程序中,我有以下代码

 public double[][] Parameters(int N_element, int N_number, out List<string> list2)
 {

 }
public double[][]参数(int N_元素、int N_编号、out List list2)
{
}
但我收到错误“无法将System.Collections.Generic.List转换为字符串[]”

有人能解释一下我使用VisualStudio2010 Ultimate的原因吗
C#,我忘了提到OUT语句中de-web服务的一个预期结果是一个字符串列表,可能有3到20个字符串,所以我真正需要的是字符串列表,所以如果我理解正确,第一个代码片段是通过自动生成的web引用类访问web应用程序。对吗

尽管您的方法在其定义中使用了
列表
,但就web应用程序和调用代码之间传输数据的方式而言,这与数组是无法区分的。VisualStudio解释web应用程序定义的方式是将
List
s视为引用类中的数组。解决方案很简单-只需向其传递一个数组:

string[] listCenAry;
serviciowebclienteKmeans.ServicioWebKmeans serv = new serviciowebclienteKmeans.ServicioWebKmeans();
serv.Parameters(element, number, out listCenAry);

// if you need a List<string>:
List<string> listCen = new List<string>(listCenAry);
string[] listCen;
serviciowebclienteKmeans.ServicioWebKmeans serv = new serviciowebclienteKmeans.ServicioWebKmeans();
serv.Parameters(element, number, out listCen);
string[]列表目录;
ServicioWebClientEmeans.ServicioWebKmeans serv=新的ServicioWebClientEmeans.ServicioWebKmeans();
服务参数(元素、编号、列表外);
//如果您需要列表:
List listCen=新列表(列表目录);

我的猜测是,当您添加引用时,它将
列表2
参数转换为字符串数组。您可以更改服务引用设置以使用
Generic.List
的集合类型,也可以更改客户端以使用数组:

string[] listCenAry;
serviciowebclienteKmeans.ServicioWebKmeans serv = new serviciowebclienteKmeans.ServicioWebKmeans();
serv.Parameters(element, number, out listCenAry);

// if you need a List<string>:
List<string> listCen = new List<string>(listCenAry);
string[] listCen;
serviciowebclienteKmeans.ServicioWebKmeans serv = new serviciowebclienteKmeans.ServicioWebKmeans();
serv.Parameters(element, number, out listCen);
添加“服务引用”时,可以选择指定生成的“集合类型”。默认情况下,这是System.Array,但如果愿意,可以将其更改为System.Collections.Generic.List。添加引用时,它位于“高级”部分(按钮左下角)。参考下面的屏幕截图


您最近是否更改了web服务定义?因此,您可能需要更新客户端中的引用。还要确保您的客户端没有将
列表
参数转换为数组(Intellisense应该会告诉您这一点)。如果不看到您试图将列表转换为
双[][/code>的代码,我们如何知道发生了什么?