我有一个字典存储用于OCR用途的模式图像。我从字典中抓取这些位图,并将其与从图像中裁剪出的图像进行比较,如果它们匹配=>抓住关键字(OCR部分完成)。在C#字典中为一个键添加多个位图值
问题出现在这里。一个密钥应该由几个不同的位图(即值)表示。 如何向字典中添加多个位图来表示相同的密钥?
这就是我如何使用字典:
Dictionary<string, Bitmap> lookup = new Dictionary<string, Bitmap>();
lookup.Add("A", new Bitmap(@"C:\08\letters\1\a1.bmp", true));
lookup.Add("A", new Bitmap(@"C:\08\letters\1\a2.bmp", true)); // Error will be here, because key A already exists for one Bitmap value.
lookup.Add("a", new Bitmap(@"C:\08\letters\1\aa1.bmp", true));
lookup.Add("B", new Bitmap(@"C:\08\letters\1\b1.bmp", true));
现在,抓住图像和值我以下:
var target = lookup.ToList();
bitmap b1 = target[j].Value; //grab value
//if value = cropped bitmap => proceed
string key = target[j].Key; //grab key
如何将根据您的解决方案这一过程的变化?
P.s.我听说过“System.Linq.Lookup(Of TKey,TElement)”,但从未使用过。这个“查找”能帮助我解决我的问题还是一个完全不同的工具?谷歌也不太了解它,所以一个例子会受到欢迎
请注意,我只在程序启动时加载字典一次,所以添加速度无关紧要。查询,另一方面是最困扰我的东西。我在我的两本词典中有120个元素,根据这篇文章http://www.dotnetperls.com/dictionary-time - 在List中查找比在字典中慢得多..
无论如何我会做一些措施来测试List解决方案那是在下面建议的 - 与我现在正在使用的Dictionary解决方案进行比较,稍后可能会在今天晚上讲述结果。
你如何声明查找?我试过“查找 lookup = new Lookup ();”并且结果是“类型'System.Linq.Lookup '没有定义的构造函数 ” –
Alex
2012-04-01 10:49:25
它应该工作,至少在.Net4上,但是您也可以通过以下方式间接创建它:http ://msdn.microsoft.com/en-us/library/bb460184(v = vs.90).aspx – SimpleVar 2012-04-01 12:02:50