像下面的内容将工作(不是语法检查这个,不好意思):
// This requires the array of Categories to have no duplicates.
public Dictionary<string, PdfOutline> BuildUpMyCollectionOfOutlines(string[] categories)
{
return categories.ToDictionary(cat => new KeyValuePair<string, PdfOutline>(cat, null));
}
如果你做这种方式,您可以稍后再消耗的结果作为这样的(虽然有一个函数来做到这是愚蠢的,只是我的方式来告诉你如何使用它):
public PdfOutline GetOutlineByCategory(Dictionary<string, PdfOutline> outlines, string category)
{
// This will be problematic if the category isn't actually in the dictionary.
return outlines[category];
}
你是否应该使用Dictionary<string, PdfOutline>
与别的东西,像一个List<KeyValuePair<string, PdfOutline>>
取决于1),你会怎么这么多已经和2)你将如何访问它们。例如,如果您有10,000个,并且您需要随机并重复按类别名称查找它们,那么字典是正确的方法,因为它可以缩短搜索速度(可以考虑数据库中的表中的索引)。但是,如果您有10,000个,但只需要找到其中的2个,反之亦然,则只有10个,那么构建该快速搜索功能的开销就会被浪费。因此Dictionary与其他问题最好的回答是“如果这是在数据库表中,你会索引它吗?”