Не совсем точно, что вы подразумеваете под "уникальным списком всех тегов из строки html".
Если вы хотите, чтобы каждый элемент в документе HTML, использовал:
htmlDoc.DocumentNode.Descendants();
Если вы хотите получить список всех тегов <code>
, один из способов добиться этого - использовать LINQ:
htmlDoc.DocumentNode.Descendants().Where(d => d.Name == "code");
Edit:
Список всех уникальных тегов можно получить следующим образом, например:
htmlDoc.DocumentNode.Descendants().Where(d => !d.Name.StartsWith("#")).Select(d => d.Name).GroupBy(d => d).Select(g => g.Key)
Это использует LINQ для выполнения следующих шагов:
- Удалить потомков, начинающихся с '#' (комментарии, текст и т. Д.), Оставив только теги.
- Выберите только имена тегов (так что вы получите их в виде строк, как требуется)
- Группировка по имени тега (поэтому вы получите только один из них)
- Выберите ключи (уникальные имена тегов)