C# 是否可以使IEnumerable<;char>;实现IComparable?
如标题所示 我们都知道,如果我们希望一个类具有可比性并用于排序,即DataGrid,我们将实现IComparable 但是对于我来说,我该怎么做呢 我有一个IEnumerable的集合,我们想要比较每个IEnumerable并进行排序 比如说一个集合C# 是否可以使IEnumerable<;char>;实现IComparable?,c#,ienumerable,icomparable,C#,Ienumerable,Icomparable,如标题所示 我们都知道,如果我们希望一个类具有可比性并用于排序,即DataGrid,我们将实现IComparable 但是对于我来说,我该怎么做呢 我有一个IEnumerable的集合,我们想要比较每个IEnumerable并进行排序 比如说一个集合列表,其中包含: IEnumerable EnumableA包含:“d”、“e”、“f” IEnumerable EnumableB包含:“d”、“e”、“c” 如果我们将集合列表绑定到数据网格, 当我们按照acs顺序对它们进行排序时,顺序将是Enu
列表
,其中包含:
IEnumerable EnumableA
包含:“d”、“e”、“f”
IEnumerable EnumableB
包含:“d”、“e”、“c”
如果我们将集合列表绑定到数据网格,
当我们按照acs顺序对它们进行排序时,顺序将是EnumableB
1,然后是EnumableA
2
我确实想到了这样的解决方案,比如将EnumableA
存储到一个对象中,该对象实现IComparable
,但这需要创建另一个对象集合,这将非常昂贵
因此,是否可以或无论如何将IComparable
接口和我的排序实现附加到iUnuerable
以使其可排序?您想要做的方法是编写一个新类,该类同时实现iUnumerable
和IComparable
我可能会实现IList
,并有一个常规的列表
作为支持列表,使用对支持列表的相同调用实现所有IList,并实现您需要的IComparable
当然,您可以选择另一种方式,使用字符串
类。它同时实现了IComparable
和IEnumerable
,因此这可能适合您的需要。请查看以下文章:
使用linq.orderby传入您的IComparable。许多可以使用IComparable
的地方也会接受IComparer
。写一个IComparerstring
implementsIEnumerable
notIEnumerable
可能更容易些。我真的不明白如何将它应用到与DataGrid的数据绑定中来进行排序。。。我不是在用Linq编程排序…哦,等等,我错过了你的最后一句话。我认为你是对的。谢谢