Ленивые свойства словаря в C#

У меня есть класс со свойством, которое является словарем:

public class Entity 
{
        public Dictionary<string, string> Name { get; set; }
}

Я хотел бы переключить это свойство на использование ленивой инициализации. Я попробовал следующее:

public class Entity 
{
        private Lazy<Dictionary<string, string>> name = new Lazy<Dictionary<string, string>>(() => new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase));
        public Dictionary<string, string> Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }
}

Это, конечно, ошибка, так как Name и name имеют разные типы. Хотя, убей меня, я не могу понять, как это правильно указать. Все, что я действительно хочу, это чтобы имя оставалось нулевым, пока я не получу к нему доступ, а затем создал его при первом чтении или записи.

8
задан Justin R. 3 April 2012 в 23:31
поделиться