我遇到了如下错误:
'string[]' 没有包含 'Cast' 的定义,也没有接受类型为 'string[]' 的第一个参数的扩展方法 'Cast' 可用(是否缺少 using 指令或程序集引用?)
在以下代码片段中:
return mNames.Cast().ToArray();
我需要哪些using指示或程序集引用?
我应该如何找到这些信息?
我是C#和.NET的新手,只是复制代码完成任务,请尽量通俗易懂。
我遇到了如下错误:
'string[]' 没有包含 'Cast' 的定义,也没有接受类型为 'string[]' 的第一个参数的扩展方法 'Cast' 可用(是否缺少 using 指令或程序集引用?)
在以下代码片段中:
return mNames.Cast().ToArray();
我需要哪些using指示或程序集引用?
我应该如何找到这些信息?
我是C#和.NET的新手,只是复制代码完成任务,请尽量通俗易懂。
(1) 确保您正在使用 C# 3.0 或更高版本。
(2) 确保您的代码包含以下内容:
using System.Linq;
(3) .Cast
是一个通用方法,你需要指定类型参数,像这样:
return mNames.Cast<AnotherType>().ToArray();
AnotherType
最终是什么? - H H当您的文件顶部缺少using System.Linq;
时,通常会出现这种情况。
您还需要使用.NET 3.5或更高版本才能使其工作。System.Linq
在System.Core.dll程序集中,这个程序集默认包含在使用.NET 3.5或更高版本的项目中。
编辑
经仔细检查,该代码将永远无法按原样工作,因为Enumerable.Cast()
方法是泛型的,并要求您传递要转换的类型:例如:mNames.Cast<object>().ToArray();
Cast<T>()
扩展方法,例如mNames.Cast<SomeType>()
。mNames
似乎已经是一个string[]
,所以您想要将其转换成什么呢?
将其强制转换为object
并不必要,因为string[]
可以分配给object[]
。object[]
可以从 string[]
赋值。 - Botz3000Enumerable.Cast()
将字符串转换成什么。 - Bennor McCarthy使用 primary.AddRange(secondary);
Enumerable.Cast
将IEnumerable
中的元素转换为指定的类型,但您尚未指定类型。 - Tim Schmelter