1.5Kпросмотров
15.0%от подписчиков
26 марта 2026 г.
Score: 1.7K
Фильтруем списки эффективно с ToHashSet! Сейчас научимся быстро отбирать элементы одного списка, проверяя, есть ли они в другом. Это избавит от лишних проходов и ускорит работу кода. Подключим нужные библиотеки — всё уже есть в стандартной библиотеке:
using System;
using System.Collections.Generic;
using System.Linq; Допустим, мы хотим оставить только избранные фрукты. Без оптимизации код выглядит так:
List<string> fruits = new() { "apple", "banana", "mango", "orange" };
string[] favorite = { "banana", "kiwi", "orange" }; var selected = fruits.Where(f => favorite.Contains(f)).ToList(); Если списки большие, Contains() будет работать медленно — каждый раз проходит по массиву. Теперь преобразуем второй список в HashSet — поиск в нём быстрее:
List<string> fruits = new() { "apple", "banana", "mango", "orange" };
string[] favorite = { "banana", "kiwi", "orange" }; HashSet<string> favSet = favorite.ToHashSet(); var selected = fruits.Where(f => favSet.Contains(f)).ToList(); 🔥 Без ToHashSet() код искал «банан» в массиве снова и снова. С HashSet — это почти мгновенная проверка. ➡️ C# Ready | #практика