Фильтрация тегов без повторов с HashSet в C#
В этом уроке вы с помощью HashSet оставите только различные теги, не учитывая регистр.
Введение
HashSet<T> - коллекция, которая хранит каждое значение только один раз. Она идеальна, когда нужны уникальные значения, например список тегов статьи. HashSet также очень быстро проверяет, есть ли в нём значение.
HashSet создан с компаратором StringComparer.OrdinalIgnoreCase, поэтому "C#" и "c#" считаются одним тегом. При инициализации тремя значениями повторяющийся тег пропускается, и в множестве остаётся 2 элемента. Без этого компаратора два написания стали бы разными тегами.
Как это работает
Выберите операцию, чтобы подсветить её результат на диаграмме. Добавьте значение, которое уже есть в множестве, и убедитесь, что дубликаты игнорируются.
Пример на C#, который можно запустить
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var tags = new HashSet<string>(StringComparer.OrdinalIgnoreCase) { "C#", "dotnet", "c#" };
Console.WriteLine(tags.Count);
}
}
2Практика с отладчиком
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
- Удаление дубликатов Оставьте только первое вхождение каждого значения. Легко
- Проверка на панграмму Панграмма содержит каждую букву английского алфавита хотя бы один раз. Легко