如果键不存在,C# Dictionary 查找会发生什么情况?

2024-02-12

我尝试检查 null 但编译器警告这种情况永远不会发生。我应该寻找什么?


假设您想获取键的值does存在、使用Dictionary<TKey, TValue>.TryGetValue https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2.trygetvalue:

int value;
if (dictionary.TryGetValue(key, out value))
{
    // Key was in dictionary; "value" contains corresponding value
} 
else 
{
    // Key wasn't in dictionary; "value" is now 0
}

(Using ContainsKey然后索引器让它看起来两次,这是毫无意义的。)

请注意,即使您were使用引用类型,检查 null 不起作用 - 索引器Dictionary<,>如果您请求丢失的密钥,则会抛出异常,而不是返回 null。 (这是一个很大的区别Dictionary<,> and Hashtable.)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果键不存在,C# Dictionary 查找会发生什么情况? 的相关文章

  • 如何在 Visual Studio 2010 中增强 XAML 设计器?

    当我使用 XAML 设计器时 进入设计器和退出设计器是如此困难和缓慢 当我这样做时 Visual Studio 卡了一段时间 有什么方法可以增强 XAML 设计器和编辑器吗 Ant 保存 XAML 文件时非常慢 这通常意味着您可能有复杂的
  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 互斥体实现可以互换(独立于线程实现)

    所有互斥体实现最终都会调用相同的基本系统 硬件调用吗 这意味着它们可以互换吗 具体来说 如果我使用 gnu parallel算法 使用openmp 并且我想让他们称之为线程安全的类我可以使用boost mutex用于锁定 或者我必须编写自己
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • 如何从main方法调用业务对象类?

    我已将代码分为业务对象 访问层 如下所示 void Main Business object public class ExpenseBO public void MakeExpense ExpensePayload payload var
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 如何将 Roslyn 语义模型返回的类型符号名称与 Mono.Cecil 返回的类型符号名称相匹配?

    我有以下代码 var paramDeclType m semanticModel GetTypeInfo paramDecl Type Type Where paramDeclType ToString returns System Col
  • 检查Windows控制台中是否按下了键[重复]

    这个问题在这里已经有答案了 可能的重复 C 控制台键盘事件 https stackoverflow com questions 2067893 c console keyboard events 我希望 Windows 控制台程序在按下某个
  • 防止在工厂方法之外实例化对象

    假设我有一个带有工厂方法的类 class A public static A newA Some code logging return new A 是否可以使用 a 来阻止此类对象的实例化new 那么工厂方法是创建对象实例的唯一方法吗 当

随机推荐

  • 聚合实体框架中的 List Code First

    我最初在聚合中使用 Enum 这对我来说工作得很好 但现在当我将属性更改为 List 时 我发现这些值没有在数据库中保存或检索 我认为 CodeFirst 会创建一个单独的表并映射其中的行 但事实并非如此 值既不被存储也不被检索 Agg p
  • 在不同数量的行上重复计算 fft

    我有兴趣计算矩阵第一行的 fft 但我事先不知道需要多少行 我需要重复执行此操作 但需要转换的行数可能会改变 我将用下面的例子来说明 假设我有一个 100 x 128 的数组 如果我在每一行上计划一维 fft FFTW 会生成以下计划 df
  • 不使用 GUI 发送电子邮件 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有任何框架可以让我在不通过 GUI 的情况下发送电子邮件 Add this https githu
  • 需要来自 swagger codegen 的注释

    我需要一种方法来注释我的 openapi 3 规范 以便 swagger codegen 向我的 java 类添加注释 例如 JsonIgnoreProperties ignoreUnknown true 那可能吗 TIA 看来您可以利用胡
  • 通过 WebJobs 重新排队或删除 Azure 存储队列中的消息

    我希望有人能够澄清有关 Azure 存储队列及其与 WebJobs 交互的一些事情 要执行重复的后台任务 即添加到队列一次 然后以设定的时间间隔重复 是否有一种方法可以更新 QueueTrigger 函数中传递的相同消息 以便可以扩展其租约
  • 如何使用OpenCV的重映射功能?

    这是 remap 最简单的测试用例 import cv2 import numpy as np inimg np arange 2 2 reshape 2 2 astype np float32 inmap np array 0 0 0 1
  • 制作独特数组的最快方法是什么?

    我有以下情况 我有一大堆随机字符串 应尽快使该数组变得唯一 现在通过一些基准测试我发现 ruby 的 uniq 相当慢 require digest require benchmark make a nice random array of
  • wordpress 上的 $(window).height() 数量太大

    我正在创建工具提示的动态位置 我先在 jsfiddle 上测试了代码 然后再将我的代码放入我的网站 在本地主机上使用 wordpress 构建 在 jsfiddle 上我的脚本可以工作 但是当我将代码放入我的网站时 它不起作用 在 Chro
  • 将数据传递到 Laravel 视图

    刚刚进入 MVC 框架 我尝试使用刀片模板引擎将数据传递到我的视图 这是我的路线文件 Route get PagesController index 我的页面控制器
  • 绘图上可缩放、可拖动的框可以选择数据

    这是设置 我有一个数据图形图 我试图找出是否可以尝试在图形上放置一个可以移动和更改宽度的框 并返回一些值 例如曲线下的百分比和面积 它看起来像这样 关于从哪里开始有什么建议吗 我的感觉是 使用更多 GUI 界面而不是标准绘图可能是可行的 我
  • 在自定义类上创建字典样式的集合初始值设定项[重复]

    这个问题在这里已经有答案了 可能的重复 自定义集合初始化器 https stackoverflow com questions 2495791 custom collection initializers 我有一个简单的 Pair 类 pu
  • 如何增加 Tensorflow 中的变量?

    当尝试在 Tensorflow 中使用主管时 我意识到 您的训练操作负责增加全局步值 参考 https github com tensorflow tensorflow blob master tensorflow g3doc how to
  • 如何在 MVC 4 中将 List 传递给控制器

    我有 2 个模型 问题和答案 如下所示 我想将列表模型发送到视图 并且在提交表单时 我将列表模型提交到控制器 但在 Action UpdateQuestion 中只能获取问题列表 但只能获取问题列表答案是否定的 您能解释一下并告诉我如何在提
  • 在Python中迭代图像所有像素的最快方法

    我已经将图像读取为数组 import numpy as np from scipy import misc face1 misc imread face1 jpg 面 1 的尺寸为 288 352 3 我需要迭代每个像素并填充y在训练集中我
  • 如何在运算符处分割字符串

    我正在用 Java 创建一个计算器 如果我让用户输入一个字符串 例如 7 4 18 3 2 到目前为止 我必须让用户在每个数字或运算符之间输入一个空格 我如何从给定的字符串创建一个数组 其中字符串按数字或运算符拆分 因此在这种情况下数组将是
  • 错误:警告:从空值创建默认对象

    我第一次发帖 我希望有人能帮助我解决周三出现在我的网站上的这个错误 我不知道如何纠正它 因为我从未接触过 php 文件 如果我能得到一些帮助 我将非常感激 出现错误的网站位于页面顶部 http www inkedkoidesigns ca
  • 如何安装 QtWebKit 插件

    我正在运行 Qt 4 5 商业快照 并希望在我的应用程序中使用我下载的插件 它是一个 so 文件 QWebView 我需要放置此文件的特定位置吗 我可以使用QWebPluginFactory 我假设这里的插件是 NPAPI 插件 例如 Fl
  • 无法创建 SSL/TLS 安全通道 - 问题可能出在代理服务器上吗?

    我有一个 C 应用程序 它调用使用证书进行身份验证的 Web 服务方法 该代码有效 因为当它安装在服务器 A 没有代理 上时 它会进行身份验证 当我在客户端站点的服务器 B 上安装代码时 它安装在代理后面 我确实尝试了几乎所有方法 但我不断
  • 为什么 List 不实现 IOrderedEnumerable

    我想使用有序枚举 并使用接口作为返回类型而不是具体类型 我需要返回一组有序的对象 但是 当使用IList
  • 如果键不存在,C# Dictionary 查找会发生什么情况?

    我尝试检查 null 但编译器警告这种情况永远不会发生 我应该寻找什么 假设您想获取键的值does存在 使用Dictionary