如何在一个键下的 Dictionary
中存储许多不同的值?
我的代码在这里:
Dictionary<string, DateTime> SearchDate = new Dictionary<string, DateTime>();
SearchDate.Add("RestDate", Convert.ToDateTime("02/01/2013"));
SearchDate.Add("RestDate", Convert.ToDateTime("02/28/2013"));
但在词典中我了解到只允许一个唯一键,所以我的代码产生了错误。
答案 0 :(得分:3)
最简单的方法是制作某种容器的Dictionary
,例如
Dictionary<string,HashSet<DateTime>>
或
Dictionary<string,List<DateTime>>
答案 1 :(得分:3)
使用Dictionary<string, List<DateTime>>
。通过键访问列表,然后将新项添加到列表中。
Dictionary<string, List<DateTime>> SearchDate =
new Dictionary<string, List<DateTime>>();
...
public void AddItem(string key, DateTime dateItem)
{
var listForKey = SearchDate[key];
if(listForKey == null)
{
listForKey = new List<DateTime>();
}
listForKey.Add(dateItem);
}
答案 2 :(得分:2)
您可以尝试使用Lookup Class。要创建它,您可以使用Tuple Class:
var l = new List<Tuple<string,DateTime>>();
l.Add(new Tuple<string,DateTime>("RestDate", Convert.ToDateTime("02/01/2013")));
l.Add(new Tuple<string,DateTime>("RestDate", Convert.ToDateTime("02/28/2013")));
var lookup = l.ToLookup(i=>i.Item1);
但是,如果需要修改查找,则必须修改元组的原始列表并从中更新查找。所以,这取决于这个集合往往会改变的频率。
答案 3 :(得分:-1)
如果您使用的是.NET 3.5,则可以使用Lookup类