首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有可能让IEnumerable<char>实现IComparable?

有没有可能让IEnumerable<char>实现IComparable?
EN

Stack Overflow用户
提问于 2012-04-19 09:01:46
回答 3查看 1.1K关注 0票数 2

就像标题一样。

我们都知道,如果我们想要一个类是可比较的,并用于排序,即DataGrid,我们将实现IComparable。

但是对于IEnumerable,我该怎么做呢?

我有一个IEnumerable集合,我们想要将每个IEnumerable相互比较并进行排序。

假设有一个集合List<IEnumerable<char>>,它包含:

IEnumerable<char> EnumableA包含:"d","e","f“

IEnumerable<char> EnumableB包含:"d","e","c“

如果我们将集合List<IEnumerable<char>>绑定到一个DataGrid,当我们按照acs的顺序对它们进行排序时,这个顺序将是第一个EnumableB,然后是第二个EnumableA

我确实想过一些解决方案,比如将EnumableA存储到实现IComparable的对象中,但这需要创建另一个对象集合,这将是非常昂贵的。

那么,是否可以或者无论如何都可以在IEnuerable<char>中添加一个IComparable接口和我的排序实现,以便它是可排序的呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-19 09:17:59

查看这篇文章:Use own IComparer with Linq OrderBy

使用linq.orderby传入您的IComparable。

票数 2
EN

Stack Overflow用户

发布于 2012-04-19 09:18:58

许多可以使用IComparable的地方也会接受IComparer。编写一个IComparer<IEnumerable<char>可能更容易。

票数 1
EN

Stack Overflow用户

发布于 2012-04-19 09:09:15

做你想做的事情的方法是编写一个同时实现IEnumerable<char>IComparable的新类。

我可能会实现IList<char>,并有一个常规的List<char>作为后备列表,使用对后备列表的相同调用来实现所有的IList,并根据需要实现IComparable。

当然,您也可以采用另一种方式,并使用string类。它同时实现了IComparableIEnumerable<char>,因此这可能适合您的需要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10220253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档