如何从 Intellisense 中删除 LINQ 扩展方法?

How to remove LINQ extension methods from Intellisense?

提问人:Pawulon 提问时间:11/1/2023 更新时间:11/2/2023 访问量:100

问:

基本上,我想要与这个问题相反的问题:Intellisense 停止为 Linq to Entities 工作

自从我下载 VS 2022 并将我的项目升级到 .NET 7 以来,这让我发疯

VS 放置在我创建的每个文件中。我正在删除这一行。有时它会停止向我显示方法一分钟,但随后它开始显示它们,即使没有.每当我实施时,列表都会被无用的方法臃肿,这些方法会分散我的注意力并减慢我的速度......using System.Linqusing ...IEnumerable

例如,我有一个(几何图形),我想要提取它的子范围。我输入“.sub”,列表中显示的唯一条目是 ,而不是提议(这是我忘记的名字),并且在这么大的列表中手动查找方法需要花费大量时间。对我来说不是很“Intelli”......List<Path>Sum<T>(Func<T, decimal>...)GetRange(int, int)

为什么这如此具有侵入性,我该如何阻止它?

我尝试删除文件中的语句,并在项目设置中取消选中“隐式全局使用”。using

C# Visual-Studio LINQ Intellisense 扩展方法 Resharper

评论

0赞 PMF 11/1/2023
我不知道该怎么做,但你确定你想要吗?列表上的许多操作都是作为扩展方法实现的,因此,如果这些操作没有显示,并且你不知道它们,则找不到它们。
0赞 Pawulon 11/1/2023
我确定。我已经用 C# 编程了 6 年,我可以用手指数出我使用了 LINQ 多少次。它很慢,很不方便。例如,我使用某种方法,我得到的是,除非我将其转换回列表,否则我无法再按索引访问元素......每当我试图为基本特定目的(例如预填充)找到一种方法时,我都必须编写自己的方法,因为它不存在......或者我正在阅读方法的描述,我不知道它说了什么,签名更加复杂......List<T>IEnumerable<T>Join
0赞 Dave Cousineau 11/1/2023
请注意,我认为扩展方法应该出现在列表的底部,并且还应该带有唯一的图标。(虽然不能确定它在 VS 中是什么样子的)。如果您在列表顶部看到它们,则没有找到其他任何内容。隐藏它们对你的例子没有帮助;您仍然无法通过键入 找到 。GetRangesub
0赞 Pawulon 11/1/2023
@DaveCousineau不是真的:drive.google.com/file/d/1llZXxeTHMd4o9y1T-lRl7RODPS8VFmos/......我不会通过输入找到,但我希望搜索的条目少 ~60 个。GetRangesub
0赞 Dave Cousineau 11/1/2023
我认为向下箭头表示扩展方法。我认为您可以单击底部没有向下箭头的方法图标,并且应该显示将列表过滤为非扩展方法。(不是 100% 确定,因为我现在使用 Rider 而不是 VS。

答:

2赞 PMF 11/1/2023 #1

对我有用,虽然可能是因为我安装了 (不确定没有它的外观)。

Popup window

扩展方法列在所有其他方法之后,因此搜索更容易。此外,底部的小按钮允许按类型过滤。左键单击“扩展方法”图标(带有向下箭头的图标)仅显示这些图标,右键单击可隐藏它们。在下拉列表的用法之间记住选择。

若要隐藏来自未包含的命名空间(包括 linq 扩展方法)的建议,但通常保持显示扩展方法,请在 下有一个选项。Options -> Text Editor -> C# -> Intellisense -> Show Elements from non-included namespaces

评论

0赞 Pawulon 11/2/2023
我知道这些按钮,但是我不想排除所有扩展方法。我只想排除 LINQ 方法(或者只是我没有明确包含的命名空间中的任何方法)。我自己写了很多扩展方法,所以这个选项不是很方便。using
0赞 PMF 11/2/2023
哦,好的。选项->文本编辑器 -> C# -> Intellisense -> 显示未包含的命名空间中的元素怎么样?这听起来像是您想要的选项。
0赞 Pawulon 11/2/2023
是的,看起来是选项。编辑你的答案,我会接受它。