字典中的一个键和许多不同的值

本文关键字:许多不 一个 字典 | 更新日期: 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 类