public ICacheItem[] Get(Predicate <string> predicate)
        {
            var items = new ICacheItem[0];

            var keys = Items.Keys.ToList().Where(x => predicate(x));

            foreach (var key in keys)
            {
                ICacheItem value;
                if (Items.TryGetValue(key, out value))
                {
                    items = items.Append(value);
                }
            }

            return(items);
        }