J'ai été assez surpris quand j'ai découvert qu'il n'y a pas de moyen direct pour trier ou effectuer une recherche binaire sur un IList < T>. Tout comme il existe des méthodes statiques pour trier et effectuer une recherche binaire sur un tableau, je pense qu'il serait terriblement utile d'avoir des méthodes statiques similaires qui prennent un IList < T>.Pourquoi n'y a-t-il pas de tri pour IList <T>?!?! (édité)
Actuellement:
class Array
{
static Sort<T>(T[] array);
static int BinarySearch<T>(T[] array, T item);
}
Je souhaite qu'ils ajouteraient:
class List
{
static Sort<T>(IList<T> list);
static int BinarySearch<T>(IList<T> list, T item);
}
Je jetai au .NET Framework 4.0 SDK Beta et il encore ne semble pas être une solution ce problème.
Je sais que je pourrais contourner cela en créant une méthode d'extension qui vérifie si c'est une liste < T> puis trier/rechercher en utilisant l'instance T> List <; cependant, s'il ne s'agit pas d'une instance d'une liste, alors je dois effectuer une copie (qui pue pour les listes très volumineuses). Je sais que je pourrais faire tout ça, mais pourquoi? Y at-il une raison pour laquelle ils ont intentionnellement omis cette fonctionnalité? Pour essayer de l'obtenir dans le Framework .NET 4.0, j'ai créé une suggestion via le programme Connect de Microsoft. Si vous êtes frustré comme moi à ce sujet, votez-y et peut-être que cela sera ajouté.
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=474201
pouvez-vous reformuler cela comme une question, peut-être "Y a-t-il une raison pour laquelle C# n'a pas intégré le tri et la recherche binaire pour IList?" En ce moment, vous êtes juste en train de faire une déclaration et d'appeler les gens à voter pour cela sur le site de Microsoft, qui risque d'être fermé comme pourriel –
Kip
Il est un peu caché dans la randonnée, mais il y a une question là-bas pour aider Je comprends pourquoi il n'est pas là si Microsoft l'a volontairement laissé de côté: "Y at-il une raison pour laquelle ils ont intentionnellement omis cette fonctionnalité?" – dewald
Le débordement de pile est un site de questions/réponses. C'est une bonne étiquette de mettre plus d'accent sur votre question (surtout dans le titre de la question). En ce moment, il semble que vous avez déjà supposé que c'est un bug, et vous voulez que les autres disent à Microsoft que vous êtes d'accord. Un meilleur esprit de SO serait de préciser que la question est "Y at-il une bonne raison à cela ou est-ce un bug?" – Kip