попробуйте
var result = html.Split('#')
.Select((s, i) => new {s, i})
.Where(p => p.i%2 == 1)
.Select(t => t.s);
Пояснение:
line1 - мы разбиваем текст по символу '#'
line2 - мы выбираем новый анонимный тип, который включает в себя положение строк в массиве и саму строку
line3 - мы фильтруем список анонимных объектов по тем, которые имеют нечетное значение индекса - эффективно выбирая «каждую вторую» строку - это подходит для нахождения тех строк, которые были заключены в хеш-символ, а не вне
line4 = мы убираем индексатор и возвращаем только строку из анонимного типа