起因是同事想找到下图这种存储结构的 HashMap:
但 .NET Framework 内置的 Hashtable 一个键只能对应单个值无法满足需求。Bing 后,暂时找到两种替代品。
NameValueCollection
它就是前端开发中常用的键值对。优势是可以直接使用,劣势是键和值都只能是 string 类型。
截取的官方示例:
var myCol = new NameValueCollection();
myCol.Add("red", "rojo");
myCol.Add("green", "verde");
myCol.Add("blue", "azul");
myCol.Add("red", "rouge");
Console.WriteLine(myCol["red"]);
// rojo,rouge
Dictionary>
Dictionary
示例:
var myCol = new Dictionary<string, List<string>>();
myCol.Add("red", new List<string> { "rojo" });
myCol.Add("green", new List<string> { "verde" });
myCol.Add("blue", new List<string> { "azul" });
myCol["red"].Add("rouge");
Console.WriteLine(string.Join(",", myCol["red"]));
// rojo,rouge