在C#中是否有类似于NameValueCollection集合的替代方法

时间:2017-06-05 09:05:36

标签: c#

NameValueCollection可以在一个键下保存多个字符串值。

是否有任何集合可以在一个键下保存多个OBJECT(不是字符串)?

2 个答案:

答案 0 :(得分:3)

您可以查看corefxlab repository中的MultiDictionary。安装Microsoft.Experimental.Collections Nuget

MultiDictionary<string, int> myDictionary = new MultiDictionary<string, int>();
myDictionary.Add("key", 1);
myDictionary.Add("key", 2);
myDictionary.Add("key", 3);
//myDictionary["key"] now contains the values 1, 2, and 3

您可以阅读以下有关MultiDictionary的帖子:https://blogs.msdn.microsoft.com/dotnet/2014/06/20/would-you-like-a-multidictionary/

答案 1 :(得分:2)

如果您不需要可变性,则应考虑Lookup<TKey, TElement> - https://msdn.microsoft.com/en-us/library/bb460184(v=vs.110).aspx(通过ToLookup)。

这也意味着您无需检查密钥是否存在 - https://msdn.microsoft.com/en-us/library/bb292716(v=vs.110).aspx

  

如果在集合中找不到密钥,则为空序列   返回。