Byłem bardzo zaskoczony, gdy odkryłem, że nie ma bezpośredniego sposobu sortowania lub wykonywania wyszukiwania binarnego na IList < T>. Tak jak istnieją statyczne metody do sortowania i przeprowadzania wyszukiwania binarnego na tablicy, myślę, że byłoby bardzo pomocne mieć podobne statyczne metody, które wymagają IList < T>.Dlaczego nie ma Sortuj dla IList <T>?!?! (edytowane)
Aktualnie
class Array
{
static Sort<T>(T[] array);
static int BinarySearch<T>(T[] array, T item);
}
życzę oni by dodać:
class List
{
static Sort<T>(IList<T> list);
static int BinarySearch<T>(IList<T> list, T item);
}
Zerknęłam na .NET Framework 4.0 Beta SDK i tam nadal nie wydaje się być rozwiązaniem ten problem.
Wiem, że mógłbym obejść ten problem, tworząc metodę rozszerzenia, która sprawdza, czy jest to lista < T>, a następnie sortuj/wyszukuj używając instancji List < T>; Jeśli jednak nie jest to instancją Listy < T>, to muszę wykonać kopię (która śmierdzi na bardzo duże listy). Wiem, że mogłem to wszystko zrobić, ale dlaczego? Czy jest jakiś powód, dla którego celowo pominęli tę funkcję?
Aby spróbować uzyskać to w środowisku .NET 4.0 Framework, stworzyłem sugestię za pośrednictwem programu Connect firmy Microsoft. Jeśli jesteś sfrustrowany, tak jak ja, w tej sprawie, zagłosuj na niego, a może zostanie dodany.
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=474201
Czy możesz zmienić to jako pytanie, być może "Czy istnieje powód, dla którego C# nie ma wbudowanego sortowania i wyszukiwania binarnego dla IList?" W tej chwili wydajesz tylko oświadczenie i wzywanie ludzi do głosowania na to na stronie internetowej Microsoftu, co grozi zamknięciem jako spam. –
Kip
Jest to rodzaj ukrytego w chaosie, ale jest tam pytanie, które może pomóc Rozumiem, dlaczego go nie ma, jeśli Microsoft celowo go pominął: "Czy jest jakiś powód, dla którego celowo pominęli tę funkcję?" – dewald
Przepełnienie stosu jest stroną z pytaniami/odpowiedziami. na etykiecie należy zwrócić większą uwagę na swoje pytanie (zwłaszcza w tytule pytania). teraz brzmi, jakbyś już założył, że to błąd i chcesz, żeby inni mówili Microsoftowi, że się zgadzasz. lepszym duchem SO byłoby wyjaśnienie, że pytanie brzmi "czy istnieje ku temu dobry powód, czy jest to błąd?" – Kip