【发布时间】:2009-11-01 22:45:07
【问题描述】:
我有一个List<T>,其中T 是一个公开“用户名”属性的类。用户名是封装字符串的自定义类型。我在这个简单返回的自定义类型上实现了IComparable<T> 接口
this.encapsulatedString.CompareTo(other.encapsulatedString)
我因此定义了列表的ICollectionView:
AllUsers=CollectionViewSource.GetDefaultView(myList);
我添加了一个排序描述:
AllUsers.SortDescriptions.Add(new SortDescription("Username",ListSortDirection.Ascending));
在这一行代码抛出了标题中所述的异常。我可以毫无问题地通过其他方式对列表进行排序。异常来自哪里?
【问题讨论】:
-
遗憾的是,Microsoft 无法抛出智能且易于理解的错误消息。例如“无法比较数组中的两个元素,因为未实现接口 IComparable。”