sta*_*low 0 c# linq observablecollection
我有一个 ObservableCollection<DateTime> myItems
并且有一些重复的项目需要删除
我尝试使用:
myItems = myItems.Distinct();
Run Code Online (Sandbox Code Playgroud)
但是我无法建立它并收到此错误:
错误1无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'System.Collections.ObjectModel.ObservableCollection'。存在显式转换(您是否缺少演员表?)
当我检查ObservableCollection时,我发现它是IEnumerable<T>以下“转到定义”所示:
public class ObservableCollection<T> : Collection<T>, INotifyCollectionChanged, INotifyPropertyChanged
public class Collection<T> : IList<T>, ICollection<T>, IReadOnlyList<T>, IReadOnlyCollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
Run Code Online (Sandbox Code Playgroud)
所以我尝试投射如下:
myItems = (ObservableCollection<DateTime>) myItems.Distinct();
Run Code Online (Sandbox Code Playgroud)
它构建良好,没有错误;但在运行时会引发以下错误:
mscorlib.ni.dll中发生类型'System.InvalidCastException'的异常,但未在用户代码中处理。其他信息:无法转换类型'd__81
1[System.DateTime]' to type 'System.Collections.ObjectModel.ObservableCollection1 [System.DateTime]'的对象。
我还尝试了以下方法:
myItems = (ObservableCollection<DateTime>) myItems.Distinct().toList<DateTime>();
Run Code Online (Sandbox Code Playgroud)
但随后我再次看到以下编译时错误:
错误1无法将类型'System.Collections.Generic.List'转换为'System.Collections.ObjectModel.ObservableCollection'
我在这里想念什么?以及如何从ObservableCollection中删除重复项?
怎么样
myItems = new ObservableCollection<DateTime>(myItems.Distinct());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5340 次 |
| 最近记录: |