@using Model @namespace Shared.Components
@foreach (var group in Cards.GroupBy(x => x)) { var cardName = group.Key; var count = group.Count(); var card = LookupCard(cardName); }
@code { [Parameter][EditorRequired] public List Cards { get; set; } = []; [Parameter] public EventCallback OnSelectCard { get; set; } private async Task SelectCard(CardData? card) { await OnSelectCard.InvokeAsync(card); } private static readonly Dictionary CardLookup = CardDatabase.Cards .Where(c => !string.IsNullOrWhiteSpace(c.Name)) .GroupBy(c => c.Name, StringComparer.OrdinalIgnoreCase) .ToDictionary(g => g.Key, g => g.First(), StringComparer.OrdinalIgnoreCase); private CardData? LookupCard(string cardName) { return CardLookup.GetValueOrDefault(cardName); } }