使用 C# 为字典中的一个键添加多个位图值

2024-04-04

我有一本字典来存储用于 OCR 目的的图案图像。我从字典中抓取了这些位图,并与我从图像中裁剪的位图进行了比较,如果它们匹配=>抓取了密钥(OCR 部分已完成)。

问题就出现在这里。一个Key应该由几个不同的位图(即值)来表示。如何将多个位图添加到字典中以表示相同的键?

这就是我使用字典的方式:

    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

根据您的解决方案,这个过程将如何变化?

附注我听说过“System.Linq.Lookup(Of TKey, TElement)”,但以前从未使用过它。这个“查找”会帮助我解决我的问题还是它是一个完全不同的工具?谷歌对此也不太了解,所以欢迎举个例子

请注意,我只在程序启动时加载字典一次,因此添加速度有多快并不重要。 查找,另一边是最困扰我的。我的两本字典中有 120 个元素,根据这篇文章http://www.dotnetperls.com/dictionary-time http://www.dotnetperls.com/dictionary-time- 在列表中查找比在字典中查找要慢得多。

无论如何,我将采取一些措施来测试下面建议的列表解决方案与我现在拥有的字典解决方案的比较,并稍后(可能是今天晚上)告诉结果。


Lookup http://msdn.microsoft.com/en-us/library/bb460184.aspx。它基本上是一个键到值列表的字典,而不是键到值的字典。

lookup.Add("a", "123"); // creates 'a' key and adds '123' to it
lookup.Add("a", "456"); // adds '456' to existing 'a' key
lookup.Add("b", "000"); // creates 'b' key and adds '000' to it
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 C# 为字典中的一个键添加多个位图值 的相关文章

随机推荐

  • Hibernate3 与 Oracle 12c

    我们正在将 oracle 从 11g 升级到 12c 我的应用程序正在使用hibernate3 jar这是 3 6 8 最终版本 与 11g 配合使用效果很好Oracle10gDialect但是当我连接到 12c 数据库时出现以下错误 我还
  • 使用 ezplot 在 MATLAB 中的同一个图形上绘制两个函数

    我想使用 ezplot 在 MATLAB 中绘制以下三个函数 但我希望这些函数位于同一张图上 以便轻松解释差异 这可能吗 如果是这样怎么办 这三个功能是 x 3 x 5 x 7 thanks 神秘的xhobo 只需使用hold on将它们连
  • 什么是缩放图像以及如何在网页中提供缩放图像?

    当我在 google PageSpeed 中运行测试页面时 我发现了一些警告 例如提供缩放图像 http man vimal net78 net introduction intro action main THe results were
  • IEnumerable 是如何逆变的?

    这个帖子 http blogs msdn com b brada archive 2005 01 18 355755 aspx https web archive org web 20140417104304 http blogs msdn
  • 如何为 google api php 客户端库设置超时

    我正在使用谷歌的PHP 客户端库 https github com google google api php client构建一个应用程序 有时 Google 需要长达 100 秒的时间来响应 API 请求 我想将套接字超时限制为 30
  • Keras 中的 dropout 行为,rate=1(丢弃所有输入单元)不符合预期

    input0 keras layers Input 32 32 3 name Input0 flatten keras layers Flatten name Flatten input0 relu1 keras layers Dense
  • 如何为 WPF 应用程序创建 chm 帮助文件?

    对于 WPF UI 应用程序 需要创建 CHM 帮助文件 如何创建 chm 帮助文件 首先在ms word中创建文档并将其转换为chm帮助文件 或者任何其他方法 请帮忙 Thanks Ramm I used Sandcastle 帮助文件生
  • Database.BeginTransaction 与 Transactions.TransactionScope [重复]

    这个问题在这里已经有答案了 有什么区别System Transactions TransactionScope和 EF6 的Database BeginTransaction 有人可以举一个小例子 或者只是解释一下当有明显差异时应该使用哪一
  • 获取列位置

    在 Cassandra DB 中 使用有序列族 我知道你能得到切片 但你能得到位置吗 例如 在此数据模型中 我保存如下分数 Scores 1000 bob lucas 900 tim 800 mario 知道用户的分数为 900 并且他的昵
  • 传递Physics2DShapeQueryParameters 层进行检查

    我目前正在为我的 2D 自上而下游戏开发一个构建系统 最后一步是检查是否有任何物体 例如树或玩家 阻碍了物品的放置 经过一些研究后 我发现使用Physics2DShapeQueryParameters 是正确的方法 我唯一的问题是我不知道如
  • 仅克隆雪花元数据

    我想克隆 Snowflake 数据库的外壳 仅元数据 无数据 这可能吗 我检查了文档并没有找到解决方案 如果您只是想获取现有数据库的空壳 则可以克隆整个数据库 然后编写脚本截断数据库中存在的所有表 克隆不会添加任何数据 并且克隆上的截断速度
  • ServiceStack.Text序列化循环引用

    我需要像这样序列化对象图 public class A public B Link1 get set public class B public A Link2 get set 这样json只得到两个实例 但又被正确反序列化了 例如 使用元
  • Rails 5.1 升级后控制器测试发出调试(失败)消息

    我最近将一个项目升级到Rails 5 1 所有弃用警告均已修复 所有测试都通过 我使用rspec rails 控制器测试使用 ActiveJob 调用邮件程序现在正在呈现冗长的警告消息 ActiveJob ActionMailer Deli
  • AllegroGraph 检查现有三元组

    我正在使用 AllegroGraph 4 我有一个三元组存储 并且只有在新的三元组尚不存在时我才会尝试添加它们 这是我的 Prolog 查询 select news alfas news a news tst has annotation
  • 参考OpenAPI 3.0中的self

    我在 OpenAPI 3 0 中有一个数据模型定义 使用 SwaggerHub 来显示 UI 我希望模型的属性之一是related 它是同一模型的属性数组 Foo properties title type string related t
  • Keras 误解训练数据形状

    我的训练数据的形式为 15 其中 是一个可变长度 创建模型时我指定了这一点 inp Input shape None 15 conv Conv1D 32 3 padding same activation relu inp 我的训练数据的形
  • PHP 系统() 参数

    我有以下代码执行C 程序 and 输出它 div div 我怎样才能做到这一点您可以将参数传递给 c 程序 这样说 如果这是c program include
  • 无点风格的简单 Haskell 函数

    我试图了解如何将 Haskell 中的函数转换为无点表示法 我看见这个例子 https stackoverflow com questions 2464406 point free in haskell 但它比我正在寻找的更复杂 我觉得我理
  • Spring Boot 应用程序无法加载 SPI 实现

    我有一个Maven模块A中定义的SPI接口 In Module B 这是一个 spring boot 应用程序 我已经定义了META INF services
  • 使用 C# 为字典中的一个键添加多个位图值

    我有一本字典来存储用于 OCR 目的的图案图像 我从字典中抓取了这些位图 并与我从图像中裁剪的位图进行了比较 如果它们匹配 gt 抓取了密钥 OCR 部分已完成 问题就出现在这里 一个Key应该由几个不同的位图 即值 来表示 如何将多个位图