字典中的一个键和许多不同的值
本文关键字:许多不 一个 字典 | 更新日期: 2023-09-27 17:57:10
如何在一个键下存储许多不同的值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"));
但是在字典中,我了解到只允许一个唯一键,所以我的代码产生了错误。
最简单的方法是制作某种容器的Dictionary
,例如
Dictionary<string,HashSet<DateTime>>
或
Dictionary<string,List<DateTime>>
使用 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);
}
您可以尝试使用查找类。要创建它,您可以使用元组类:
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);
但是,如果需要修改查找,则必须修改元组的原始列表并从中更新查找。因此,这取决于此集合倾向于更改的频率。
如果您使用的是 .NET 3.5,则可以使用 Lookup 类