public T TryGetItem(ItemTemplate template, System.Collections.Generic.IEnumerable <EffectBase> effects)
        {
            System.Collections.Generic.IEnumerable <T> source =
                from entry in this.Items.Values
                where entry.Template.Id == template.Id && effects.CompareEnumerable(entry.Effects)
                select entry;

            return(source.FirstOrDefault <T>());
        }