Я был очень удивлен, когда обнаружил, что нет прямого способа сортировки или выполнения бинарного поиска в IList <T> . Точно так же, как есть статические методы для сортировки и выполнения двоичного поиска в массиве, я считаю, что было бы очень полезно иметь аналогичные статические методы, которые принимают IList <T> .
В настоящее время
class Array
{
static Sort<T>(T[] array);
static int BinarySearch<T>(T[] array, T item);
}
Хотелось бы добавить:
class List
{
static Sort<T>(IList<T> list);
static int BinarySearch<T>(IList<T> list, T item);
}
Я взглянул на SDK.NET Framework 4.0 Beta и там еще не является решением этой проблемы.
Я знаю, что я мог бы обойти это, создав метод расширения, который проверяет, является ли это List <T> , а затем сортировка/поиск с использованием списка <T> экземпляр; однако, если это не экземпляр списка <T> , тогда я должен выполнить копию (которая воняет для очень больших списков). Я знаю, что могу все это сделать, но почему? Есть ли причина, по которой они специально упустили эту функцию?
Чтобы попытаться получить это в .NET 4.0 Framework, я создал предложение через программу Microsoft Connect. Если вы расстроены, как я, по этому вопросу, проголосуйте за него и, возможно, он будет добавлен.
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=474201