c# – 使用多个相同的键轻松查找值的最佳集合类型是什么?

我有像下面这样包含单个和多个变量的文本文档:

title:: Report #3
description:: This is the description.
note:: more information is available from marketing
note:: time limit for this project is 18 hours
todo:: expand the outline
todo:: work on the introduction
todo:: lookup footnotes

我需要遍历这个文本文档的行并用这些变量填充一个集合,目前我正在使用一个Dictionary:

public Dictionary<string, string> VariableNamesAndValues { get; set; }

但是这不适用于多个相同的键,例如上面例子中的“note”和“todo”,因为键必须在Dictionary中是唯一的.

什么是最好的集合,这样我不仅可以获得这样的单个值:

string variableValue = "";
if (VariableNamesAndValues.TryGetValue("title", out variableValue))
    return variableValue;
else
    return "";

但我也可以像这样得到多个值:

//PSEUDO-CODE:
List<string> variableValues = new List<string>();
if (VariableNamesAndValues.TryGetValues("note", out variableValues))
    return variableValues;
else
    return null;
如果您的键和值是字符串,则使用NameValueCollection.它支持给定键的多个值.

它不是世界上最有效的收藏品.特别是因为它是非泛型类,使用大量虚方法调用,GetValues方法将为其返回值分配数组.但除非你需要表现最佳的收藏品,否则这肯定是最方便的收藏品.

翻译自:https://stackoverflow.com/questions/2393638/what-is-the-best-collection-type-to-easily-lookup-values-with-multiple-identica

转载注明原文:c# – 使用多个相同的键轻松查找值的最佳集合类型是什么?