Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
407 of 1492 menu
◀ ▶

Метод BinarySearch

Метод BinarySearch класса List<T> выполняет двоичный поиск по отсортированному списку. Возвращает индекс или отрицательное число, если элемент не найден. Есть перегрузка с IComparer<T>.

Синтаксис

int index = list.BinarySearch(item); int index = list.BinarySearch(item, comparer);

Пример

Давайте найдём число в уже отсортированном списке:

using System; using System.Collections.Generic; class Program { static void Main() { List<int> nums = new List<int> {1, 2, 3, 4, 5}; Console.WriteLine(nums.BinarySearch(3)); } }

Результат выполнения кода:

2

Пример

Давайте получим отрицательный индекс для отсутствующего:

using System; using System.Collections.Generic; class Program { static void Main() { List<int> nums = new List<int> {1, 2, 3, 4, 5}; Console.WriteLine(nums.BinarySearch(6) < 0); } }

Результат выполнения кода:

True

Пример

Давайте отсортируем список и выполним поиск:

using System; using System.Collections.Generic; class Program { static void Main() { List<int> nums = new List<int> {5, 1, 4, 2, 3}; nums.Sort(); Console.WriteLine(nums.BinarySearch(4)); } }

Результат выполнения кода:

3

Пример

Давайте найдём строку в отсортированном списке:

using System; using System.Collections.Generic; class Program { static void Main() { List<string> items = new List<string> {"a", "b", "c", "d", "e"}; Console.WriteLine(items.BinarySearch("c")); } }

Результат выполнения кода:

2

Смотрите также

  • метод Sort,
    который сортирует список перед поиском
  • метод IndexOf,
    который ищет линейно в любом порядке
  • интерфейс IComparer,
    который задаёт порядок для поиска
  • свойство Default,
    которое даёт сравниватель по умолчанию
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить