2013-04-25 88 views
0

因此,我正在尝试编写一个程序,该程序结合了已经可用的PDF列表中的PDF。我已经完成了大部分工作,但是我特别关心一个问题。如果这不明显,我也用c#编写它。使用PdfOutlines填充字典

我有一个包含类别名称的字符串数组,并且对于每个类别名称,我想创建一个PdfOutline类型的变量,该变量被初始化为null,我可以在程序中稍后重复使用该变量。

我试图自己看看这个,看起来字典就是这样做的方式,但我并不确定如何去做。首先,制作字典是正确的方法,其次,我需要实施方面的帮助。

谢谢你的时间!

回答

0

像下面的内容将工作(不是语法检查这个,不好意思):

// 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与其他问题最好的回答是“如果这是在数据库表中,你会索引它吗?”