可枚举的LINQ扩展隐藏在字符串上......为什么以及如何?

dig*_*All 5 linq string extension-methods .net-3.5 visual-studio-2008

可能重复:
为什么VS 2008不在Intellisense中为String类显示扩展方法

大家好.

昨天我注意到EnumerableLINQ exstensions隐藏在字符串上(我的意思是隐藏在intellisense中).

我们都知道string是一个IEnumerable<char>,所以它应该自动获得Enumerable扩展,并且如果你使用它们实际上编译和工作,但是为什么.NET开发人员决定将它们隐藏在intellisense中呢?

最后,我们如何隐藏特定类型的扩展方法?

对不起我的英语不好......

编辑:我忘了说我的目标是VS 2008上的.net 3.5

EDIT2:这里有2张图片:

字符串上的智能感知:

字符串上的Intellisense http://img690.imageshack.us/img690/10/stringintelli.png

关于IEnumerable的Intellisense:

关于可枚举的智能感知http://img101.imageshack.us/img101/8828/enumintelli.png

Hen*_*man 1

当我有一个字符串s和类型时s.,我确实获得了所有扩展方法(如 FirstOrDefault 等)。

我用VS2010 Express检查过。

你当然应该有static class System.Linq.Enumerablein 范围。


至于How部分,我猜想类似这个属性的东西被用在了String上。但是清除 C# 的“隐藏高级”选项没有带来任何变化,因此它不完全是这个属性,而是类似的东西。

至于为什么部分,不知道。但有趣的是,它针对 Fx4 进行了更改