System.Array的.不包含"ToList"的定义

fea*_*urs 34 .net-3.5 c#-3.0

我在下面的代码的ToList()行中收到上述错误

if (emailReplyTo != null)
{
  System.Collections.Generic.List<String> replyto
    = emailReplyTo
    // Strip uneccessary spaces
    .Replace(", ", ",")
    .Split(',')
    .ToList();

  request.WithReplyToAddresses(emailReplyTo);
}
Run Code Online (Sandbox Code Playgroud)

我已将其包含using System.Collections;在我的文件顶部.目标框架是3.5,为什么这会导致错误?

And*_*are 94

ToList您正在寻找的方法是扩展方法.尝试将此using指令添加到文件的顶部:

using System.Linq;
Run Code Online (Sandbox Code Playgroud)

通过添加此using指令,您将向编译器指示应该导入该命名空间中的任何扩展方法.令人遗憾的是,Visual Studio在导入扩展方法方面没有更多的帮助(ReSharper做得相当不错).


Ale*_*lex 12

如果有人在谷歌搜索后偶然发现这个问题......

我在Razor视图中遇到了完全相同的问题,并且using System.Linq在顶部添加没有帮助.

.Cast()在使用Linq扩展方法之前,有什么帮助调用:

myArrayVariable.Cast<SomeClass>().ToList() //ok, NOW ToList works fine
Run Code Online (Sandbox Code Playgroud)

  • 正确的。例如,在使用枚举时必须完成此操作。获取字符串形式的 MyEnumType 名称列表: System.Enum.GetValues(typeof(MyEnumType)).Cast&lt;MyEnumType&gt;().Select(v=&gt;v.ToString()).ToList(); (3认同)

Hap*_*plo 8

ToList()是一种扩展方法.也许你错过了

using System.Linq;
Run Code Online (Sandbox Code Playgroud)


Pau*_*son 8

您也可以在没有.toList的情况下执行此操作,无需任何实际原因即可保存包含整个库.

新列表(数组)

  • 这是一个巨大的帮助!不过,不要忘记 &lt;T&gt;: new List&lt;T&gt;(array); (2认同)

Gra*_*mas 6

这只是因为ArrayList没有公开一个名为的方法ToList.

请参阅此MSDN页面,以获取可供您使用的成员的表格视图.

正如其他人所解释的那样,您可以通过导入Linq库来访问此扩展方法:

using System.Linq;
Run Code Online (Sandbox Code Playgroud)

此外,如果您希望实现此类链接,请参阅此链接以获取此类链接的自定义实现.