2011-01-31 2 views
1

Предположим, у меня есть словарь, который я хочу сохранить в сеансе. Этот словарь будет хранить список объектов с датой в качестве ключа.Доступ к словарю в сеансе

Dictionary<DateTime, List<MyObjects>> SessionDictionaryMyObjects = new... 

Как я положил список MyList в словаре с ключом 31/1/2011 и как получить список для 1/19/2011 из словаря?

Спасибо.

ответ

2

Нравится?

Dictionary<DateTime, List<MyObjects>> SessionDictionaryMyObjects = Session["SessionDictionaryMyObjects"] as Dictionary<DateTime, List<MyObjects>>; 
if (SessionDictionaryMyObjects == null) 
{ 
    Session["SessionDictionaryMyObjects"] = SessionDictionaryMyObjects = 
      new Dictionary<DateTime, List<MyObjects>>(); 
} 

// Set value 
SessionDictionaryMyObjects.Add(new DateTime(2011, 1, 31), yourListObject); 

if (SessionDictionaryMyObjects.Contains(new DateTime(2011, 1, 19))) 
{ 
    // Get value 
    List<MyObjects> o = SessionDictionaryMyObjects[new DateTime(2011, 1, 19)]; 
} 

Вы также должны Шек, существует ли значение в словаре с ContainsKey методом

+0

Лол, объявить меньше переменных ;-) –

+0

нормально, круто. Я думаю о добавлении к нему класса-оболочки. – frenchie

+0

@Matthew: где это можно уменьшить с помощью переменных? – frenchie

1
//to add 
List<MyObjects> myList = new List<MyObjects>(); 
//myList.add("etc") ... 

SessionDictionaryMyObjects.Add(DateTime.Parse("31/1/2011"),myList); 


//to retrieve  
if (SessionDictionaryMyObjects.ContainsKey(DateTime.Parse("1/19/2011"))) 
{ 
List<MyObjects> myList= SessionDictionaryMyObjects[DateTime.Parse("1/19/2011")]; 
}