Sono rimasto piuttosto sorpreso quando ho scoperto che non esiste un modo diretto per ordinare o eseguire una ricerca binaria su un IList < T>. Proprio come ci sono metodi statici per ordinare ed eseguire una ricerca binaria su una matrice, penso che sarebbe terribilmente utile avere metodi statici simili che richiedono un IList < T>.Perché non esiste un ordinamento per IList <T>?!?! (modificato)
Attualmente:
class Array
{
static Sort<T>(T[] array);
static int BinarySearch<T>(T[] array, T item);
}
Vorrei che si aggiungere:
class List
{
static Sort<T>(IList<T> list);
static int BinarySearch<T>(IList<T> list, T item);
}
Diedi un'occhiata al .NET Framework 4.0 Beta SDK e ci ancora non sembra essere una soluzione per questo problema.
So che potrei aggirare questo creando un metodo di estensione che controlla se si tratta di un elenco < T> e quindi ordinare/cercare utilizzando l'istanza Elenco < T>; tuttavia, se non è un'istanza di un elenco < T>, quindi devo eseguire una copia (che puzza per elenchi molto grandi). So che potrei fare tutto questo, ma perché? C'è qualche ragione per cui hanno intenzionalmente omesso questa funzione?
Per provare a ottenere questo nel .NET Framework 4.0, ho creato un suggerimento tramite il programma Connect di Microsoft. Se sei frustrato come me riguardo a questo problema, votalo e forse verrà aggiunto.
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=474201
puoi riformulare questo come una domanda, forse "C'è qualche ragione in cui C# non ha ordinamento e ricerca binaria incorporati per IList?" in questo momento stai solo facendo una dichiarazione e invitando le persone a votare per questo sul sito di microsoft, che rischia di essere chiuso come spam –
Kip
È un po 'nascosto nel vagabondaggio, ma c'è una domanda in là per aiutare capisco perché non è lì se Microsoft l'ha intenzionalmente lasciato fuori: "C'è qualche ragione per cui hanno intenzionalmente omesso questa funzione?" – dewald
overflow dello stack di pozzetti è un sito di domande/risposte. è buona norma mettere più attenzione alla tua domanda (specialmente nel titolo della domanda). in questo momento sembra che tu abbia già dato per scontato che si tratti di un bug e vuoi che gli altri dica a Microsoft che sei d'accordo. migliore spirito di SO sarebbe quello di chiarire che la domanda è "c'è una buona ragione per questo o è un bug?" – Kip