我收到错误:
'string []'不包含'Cast'的定义,并且没有扩展方法'Cast'可以找到接受类型'string []'的第一个参数(你是否缺少using指令或汇编引用? )
关于以下代码:
return mNames.Cast().ToArray();
我需要什么使用指令或汇编参考? 我如何找到这些东西?
我是C#和.NET的菜鸟,我只是复制代码来完成工作,所以不要太熟练了。
答案 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);