为什么我的项目中缺少 ObservableCollection 的所有方法?

Why are all of the methods of an ObservableCollection missing in my project?

似乎缺少 ObservableCollection 的方法和属性。我很混乱。

这是一个旧项目的截图:

现在我的当前项目:

这是两个项目中的using语句:

using System.Collections.ObjectModel;

他们是更新了 SDK 并删除了所有方法,还是我使用了错误的 ObservableCollection?我不知道发生了什么。

"missing" 方法是 LINQ 扩展方法。将 LINQ 添加到包含的库列表中。

我认为您缺少 LINQ 扩展。尝试添加:

using System.Linq;

当您看到方法 上的向下箭头时,表示该方法不是 class 的一部分,而是“Extension Method”。扩展方法基本上是来自其他 class 的静态方法,它们的作用类似于您正在使用的 class 上的实例方法。

您列表中的大部分项目来自将 using System.Linq; 添加到您的文件顶部。这会导致 System.Linq.Enumerable 中的所有扩展方法都出现在列表中,这会给你 All<>Any<> 之类的东西。但是 AddRange<> 不是 System.Linq 中的标准扩展方法,可能会由您正在使用的其他一些第三方库(或我不知道的 .NET 中的某些名称空间)添加。

找出从哪里获得 AddRange<> 的最简单方法是转到它工作的项目,然后右键单击代码中的方法,您应该会看到 "Go To Definition" 或similar1,应该会带您到文件或声明该扩展方法的文件的元数据视图。

1:我用的是Resharper,它改变了我的右键菜单,所以我不知道确切的措辞