【问题标题】:Convert list to int array in C#在 C# 中将列表转换为 int 数组
【发布时间】:2013-11-06 05:43:46
【问题描述】:

我已通过 StackOverflow 和 Google 搜索转换,但不幸的是我无法获得解决方案。一切都与我想要的相反。即,将int[] 转换为List

问题

我的[WebMethod] 中有此代码。

[WebMethod]
public int MyMethodWS(int N, List<int> M)
{
}

现在我有一个控制台应用程序,它通过使用此 URL 引用此服务:

http://localhost:61090/MyMethod.asmx?WSDL

我的控制台应用程序中有此代码:

int N;
List<int> M = new List<int>();
// Some crazy user input coding.
// Ultimately you will have non-empty M list and N int.
MyMethod.MyMethodWS DA = new MyMethod.MyMethodWS();
Sum = DA.MyMethodWS(N, M);

当我运行这段代码时,我收到了这个错误:

#1: 'MyMethod.MyMethod.MyMethodWS(int, int[])' 的最佳重载方法匹配有一些无效参数。

#2: 参数 2:无法从 'System.Collections.Generic.List&lt;int&gt;' 转换为 'int[]'

问题

  1. 我在那里只使用了List。但是为什么它试图转换为int[]
  2. 目前,WebService 和 Console Application 都在同一个解决方案中运行。这是个问题吗?我应该使用不同的解决方案,还是完全使用不同的 Visual Studio 2012 实例?

【问题讨论】:

    标签: c# list visual-studio-2012 int


    【解决方案1】:

    它正在尝试将其转换为int[],因为MyMethodWSint[] 作为参数,而不是您尝试传递它的List&lt;int&gt;。要将List&lt;int&gt; 转换为int[],请致电List&lt;T&gt;.ToArray();

    所以将Sum = DA.MyMethodWS(N, M);这一行改为Sum = DA.MyMethodWS(N, M.ToArray());

    【讨论】:

    • 是什么让你说它需要一个int[] 参数?你能解释一下为什么会这样,即使它被定义为List&lt;int&gt;
    • @JeroenVannevel 其实我现在也有点困惑。我认为最初 Praveen 试图调用的方法被命名为 DivisorSumWS 或其他名称,而不是 MyMethodWS,它显然将 List&lt;int&gt; 作为参数。但是,该错误消息清楚地表明该方法将int[] 作为参数...我不太确定发生了什么,可能是 Praveen 更改了原始帖子,或者我一开始就读错了。
    • @JaakkoLipsanen 请更新您的答案。是的,我改变了它,因为它是我生产的代码,我不应该放。 :)
    • 问题是,我已经声明为List&lt;int&gt;,但它预计在int[]。但是您的解决方案可以消除错误,但是 VS 2012 Crashed。
    • @PraveenKumar 您的代码中是否还有问题或错误?因为根据您问题中编辑的代码,它应该可以正常工作。如果仍然无法正常工作,请尝试清理和重建,如果这样也没有帮助,请发布更多信息,以便我们为您提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    相关资源
    最近更新 更多