@using LanguageExt.UnsafeValueAccess @typeparam TCard @{ var letters = new System.Collections.Generic.HashSet(); } @foreach (TCard card in Cards.Filter(c => !string.IsNullOrWhiteSpace(c.Title)).OrderBy(c => c.SortTitle)) { Option maybeLetter = card.SortTitle.ToLowerInvariant().HeadOrNone(); if (maybeLetter.IsSome) { char letter = maybeLetter.ValueUnsafe(); if (char.IsDigit(letter) || !char.IsLetter(letter)) { letter = '#'; } if (!letters.Contains(letter)) { letters.Add(letter);
@ChildContent(card)
} else { @ChildContent(card) } } else { @ChildContent } }