2009-05-06 3 views
6

Est-il possible de renvoyer un IOrderedEnumerable<T> à partir d'une méthode sans utiliser les méthodes OrderBy ou OrderByDescending sur un IEnumerable<T>? Je ne devine peut-être pas ... mais ... peut-être que je me trompe?C#: Est-il possible de renvoyer un IOrderedEnumerable <T>?


Raison: Principalement curiosité. C'est juste une sorte de me frapper en faisant this answer sur les chiffres de retour dans un nombre. Et ma méthode retournerait les chiffres dans l'ordre croissant, selon leur poids dans le nombre donné. J'ai donc pensé que ça pourrait être bien s'ils sortaient commandés d'une manière que le cadre reconnaîtrait comme ordonné. Bien sûr, nous pouvons soutenir que d'un point de vue numérique, ils n'ont pas été commandés. Mais ouais ... s'ils devaient ou ne devaient pas n'était pas le point ici. Juste si c'était possible ou non.

Je suppose que je suis également impliquer une question (ou suis maintenant au moins) sur si un IOrderedEnumerable<T> est plus qu'un simple IEnumerable<T> avec un nom différent. Est-ce qu'il contient autre chose? Je sais qu'il a les méthodes ThenBy et ThenByDescending, mais utilisent-ils quelque chose à l'intérieur du IOrderedEnumerable<T>, ou est-ce juste qu'ils n'ont pas de sens à utiliser directement sur un IEnumerable<T>?

+0

Et pourquoi avez-vous besoin de ce type? – Migol

+0

Voulez-vous une collection triée? –

Répondre

2

Eh bien, vous pouvez implémenter IOrderedEnumerable<T> vous-même si vous voulez aussi ... ce n'est pas énormément dur, selon ce que vous devez faire. L'option la plus simple est simplement d'appeler OrderBy/OrderByDescending si :)

Pourquoi êtes-vous intéressé?

Questions connexes