'string []'不包含'Cast'的定义

时间:2012-06-27 08:31:42

标签: c#

我收到错误:

  

'string []'不包含'Cast'的定义,并且没有扩展方法'Cast'可以找到接受类型'string []'的第一个参数(你是否缺少using指令或汇编引用? )

关于以下代码:

return mNames.Cast().ToArray();

我需要什么使用指令或汇编参考? 我如何找到这些东西?

我是C#和.NET的菜鸟,我只是复制代码来完成工作,所以不要太熟练了。

5 个答案:

答案 0 :(得分:21)

(1)确保您正在使用C#3.0 +

(2)确保您的代码包含:

using System.Linq;

(3).Cast是一个通用方法,你需要指定类型参数,如下所示:

return mNames.Cast<AnotherType>().ToArray();

答案 1 :(得分:5)

当您在文件顶部缺少using System.Linq;时,通常会发生这种情况。

您还需要使用.NET 3.5或更高版本才能运行。 System.Linq位于程序集System.Core.dll中,默认情况下包含在使用.NET 3.5或更高版本的项目中。

修改

仔细检查后,该代码将永远不会按照书面形式工作,因为Enumerable.Cast()方法是通用的,并且要求您传入要投射的类型:例如mNames.Cast<object>().ToArray();

答案 2 :(得分:2)

通常,您使用类型参数调用Cast<T>()扩展方法,例如mNames.Cast<SomeType>()

无论如何,mNames似乎已经是string[],那么你想把它投射到什么? 无需转换为object,因为可以从object[]分配string[]

答案 3 :(得分:2)

即使您没有明确使用“Cast”,如果您使用Linq表达式并忘记“使用System.Linq;”,也会出现编译错误。

答案 4 :(得分:-1)

使用primary.AddRange(secondary);