3.5 Collections.Generic.SortedList 的 .NET 文档 http://msdn.microsoft.com/en-us/library/ms132320%28v=vs.90%29.aspx
在文档中,它明确指出“ElementAt”是一个扩展方法SortedList
成员。好吧,我有一个,如此声明:
private SortedList<int, ChainLink> linksByLevel = new SortedList<int, ChainLink>();
我尝试获取最后一个元素:
ChainLink lastLink = linksByLevel.ElementAt(linksByLevel.Count - 1);
编译器抛出大规模地有用的消息:
错误 1“System.Collections.Generic.SortedList”不包含“ElementAt”的定义,并且没有扩展方法“ElementAt”接受类型为“的第一个参数”System.Collections.Generic.SortedList<int,ChainLink>'
可以找到(您是否缺少 using 指令或程序集引用?)
我对 Microsoft 的文档和我的编译器缺乏一致性感到非常沮丧,并且很想抱怨 API 之间的不一致SortedList
and SortedList<T1, T2>
,但我怀疑这会给我的问题带来多大价值。相信我,这很令人沮丧:-\
尝试将导入添加到代码文件的顶部:
using System.Linq;
您需要指定您是using包含扩展方法的命名空间,然后才能实际使用扩展方法。因此,正如错误所解释的那样,您错过了using
-指示。
如果您确实知道该方法是扩展方法,但不知道它位于哪个命名空间中,那么您可能需要在线搜索才能找到它。默认情况下,Visual Studio 2012 无法为您解决该问题。你所说的扩展方法是Enumerable.ElementAt http://msdn.microsoft.com/en-us/library/bb299233.aspx in the System.Linq
System.Core.dll 的命名空间。
在 Visual Studio 中,当您创建新的类文件时,您将拥有using System.Linq
自动插入顶部。那个命名空间 http://msdn.microsoft.com/en-us/library/system.linq.aspx包含所有的LINQ 扩展方法 http://msdn.microsoft.com/en-us/library/system.linq.enumerable.aspx用于处理各种集合(包括列表、字典和数组)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)