Я был очень удивлен, когда обнаружил, что нет прямого способа сортировки или выполнения бинарного поиска по IList . Так же, как есть статические методы для сортировки и выполнения бинарного поиска в массиве, я думаю, что было бы очень полезно иметь аналогичные статические методы, которые принимают IList .
В настоящее время:
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);
}
Я посмотрел на .NET Framework 4.0 Beta SDK, и там все еще , похоже, не является решением этой проблемы.
Я знаю, что мог бы обойти эту проблему, создав метод расширения, который проверяет, является ли он списком , а затем сортирует / ищет, используя экземпляр List ; однако, если это не экземпляр List , тогда я должен выполнить копию (которая воняет для очень больших списков). Я знаю, что могу сделать все это, но почему? Есть ли какая-то причина, по которой они намеренно пропустили эту функцию?
Чтобы попытаться получить это в .NET 4.0 Framework, я создал предложение через программу Microsoft Connect. Если вы, как и я, разочарованы этой проблемой, проголосуйте за нее, и, возможно, она будет добавлена.
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=474201