C# 字典 ValueOrNull / ValueorDefault

2023-12-24

目前我正在使用

var x = dict.ContainsKey(key) ? dict[key] : defaultValue

我想要某种方法让字典[key]对于不存在的键返回null,所以我可以写类似的东西

var x =  dict[key] ?? defaultValue;

这也最终成为 linq 查询等的一部分,所以我更喜欢单行解决方案。


使用扩展方法:

public static class MyHelper
{
    public static V GetValueOrDefault<K, V>(this IDictionary<K, V> dic, 
                                            K key, 
                                            V defaultVal = default(V))
    {
        V ret;
        bool found = dic.TryGetValue(key, out ret);
        if (found) { return ret; }
        return defaultVal;
    }
    void Example()
    {
        var dict = new Dictionary<int, string>();
        dict.GetValueOrDefault(42, "default");
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 字典 ValueOrNull / ValueorDefault 的相关文章

  • 检查列表是否包含另一个列表。 C#

    编辑 只是说 ContainsAllItem 中的注释解释得最好 很抱歉问这个问题 我知道以前有人问过这个问题 但我只是不明白 好的 所以我想检查一个列表是否包含另一个列表中的所有项目WITHOUT重叠 以及根据类字符串 名称变量 称为项目
  • 切换图片框可见性 C#

    为什么图片框控件的可见性属性在这里不起作用 我最初将它们设置为 false 以便在屏幕加载时它们不可见 但后来我想切换这个 我已完成以下操作 但似乎不起作用 这是一个 Windows 窗体应用程序 private void Action w
  • Android NDK C++“wstring”支持

    我有用 C 编写的源代码 lib 现在我想在 Android NDK 项目 NDK 6 中编译并使用相同的源代码 lib 我能够编译大多数 C 文件 除了基于 std wstring 的功能 在 Application mk 中 当我指定时
  • 如何将pdf页面设置设置为打印属性对话框?

    大家好 我想知道如何设置 pdf 页面设置到打印属性对话框 例如 如果我的 PDF 页面设置为横向 则布局会自动显示横向而不是纵向 如果我的 PDF 页面设置为纵向 则布局会自动显示纵向 我在这个主题上做了很多研发 但没有找到任何满意的链接
  • C# 中附加/分离事件处理程序的不同方式有什么区别

    我的问题有两个部分 首先 我们可以通过以下两种方式附加事件处理程序 myObject MyEvent new EventHandler MyHandler myObject MyEvent MyHandler 据我了解 这两者是等价的 在第
  • 如何将字节块读入结构体

    我有一个需要处理的资源文件 它包含一组文件 首先 资源文件列出了其中包含的所有文件 以及一些其他数据 例如在此结构中 struct FileEntry byte Value1 char Filename 12 byte Value2 byt
  • rand() 播种与 time() 问题

    我很难弄清楚如何使用 rand 并使用 Xcode 用 time 为其播种 我想生成 0 到 1 之间的随机十进制数 该代码为我提供了元素 1 和 2 看似随机的数字 但元素 0 始终在 0 077 左右 有什么想法吗 我的代码是 incl
  • 如何使用泛型类型的 DataContractSerializer 编写自定义序列化器?

    我想编写一个自定义序列化器 用于将会话状态存储到Azure 缓存 预览版 这意味着这个自定义序列化器必须实现IDataCacheObjectSerializer 如果我错了 请告诉我 我需要编写这个自定义序列化程序的原因是我需要序列化一些包
  • QThread - 使用槽 quit() 退出线程

    我想在线程完成运行时通知对象 但是 我无法让线程正确退出 我有以下代码 处理器 cpp thread new QThread tw new ThreadWorker connect tw SIGNAL updateStatus QStrin
  • 更改其他页面的主窗口内容

    在 WPF 应用程序的主窗口中 我有一个 Badged 元素 来自材料设计 这是我的代码
  • 从包含大量文件的目录中检索文件

    我的目录包含近 14 000 000 个 wav 格式的音频样本 所有普通存储 没有子目录 我想循环浏览文件 但是当我使用DirectoryInfo GetFiles 在该文件夹上 整个应用程序冻结了几分钟 可以用另一种方式完成吗 也许读取
  • 如何不在类中实现接口的功能?

    面试时面试官问了我以下问题 但我不知道这个问题的答案是什么 请帮忙 如果我不想 我必须做什么 在我的类中实现一个函数 在接口中声明为 由我班实施 Edited 我正在使用 NET 和 C 如果有人可以提供 C 示例代码示例 那就太好了 Th
  • 是什么原因导致 Linq 错误:此方法无法转换为存储表达式?

    我有一堆具有相同 select 语句的 Linq to Entity 方法 所以我想我会很聪明 并将其分离到它自己的方法中以减少冗余 但是当我尝试运行代码时 我得到了以下内容错误 该方法不能转化为 商店表达式 这是我创建的方法 public
  • `cosf`、`sinf` 等不在 `std` 中 [重复]

    这个问题在这里已经有答案了 根据这里的讨论 我有报告了一个错误 https bugs launchpad net ubuntu source gcc 8 bug 1831385给 Ubuntu 开发者 编译以下示例 C 程序时 includ
  • 有没有更好的方法来获取每个项目与谓词匹配的子序列?

    假设我有一个 IEnumerable 例如 2 1 42 0 9 6 5 3 8 我需要获得与谓词匹配的项目的 运行 例如 如果我的谓词是 bool isSmallerThanSix int number 我想得到以下输出 2 1 0 5
  • C++ 标准中短语“构造函数没有名称”的含义

    在尝试理解 C 标准中的 构造函数没有名称 这句话时 我似乎在 clang 中发现了一个错误 有人可以证实这一点吗 VS2015 and gcc rejects this code and I think they it are is co
  • 将 bignum 类型结构转换为人类可读字符串的有效方法是什么?

    我有一点问题 为了增长我的 C 知识 我决定尝试实现一个基本的 bigint 库 bigint 结构的核心将是一个 32 位整数数组 选择它们是因为它们适合寄存器 这将允许我在数字之间进行操作 这些操作将在 64 位整数中溢出 这也将适合寄
  • 检测 SignalR Hub 客户端立即断开连接

    SignalR Hub OnDisconnected 何时在服务器端引发 对于崩溃或关闭而不调用Stop method 我正在使用 SignalR NET 客户端进行测试 而不是 javascript 客户端 如果我打电话给Stop客户端上
  • c# 替代方案中 cfusion_encrypt 中填充的密钥是什么?

    我找到了从这里复制 C 中的 cfusion encrypt 函数的答案 ColdFusion cfusion encrypt 和 cfusion decrypt C 替代方案 https stackoverflow com questio
  • 程序退出后,TcpListener Socket 仍处于活动状态

    当我的程序退出时 我试图停止 TCP 侦听器 我不关心套接字或任何活动客户端套接字上当前活动的任何数据 套接字清理代码本质上是 try myServer Server Shutdown SocketShutdown Both catch E

随机推荐

  • 如何制作垂直输入框?

    这就是我要的 垂直输入字段 x 是关闭按钮 这是我到目前为止所拥有的 margin 0 padding 0 html body height 100 width 100 sidenav height 100 width 20 backgro
  • 在 R-Studio 中使用语法颜色打印

    在 R 中 我总是喜欢打印出脚本 因为它提供了一个很好的概述 并且可以调整最终的错误 我喜欢 R Studio 中的语法突出显示 因为它有助于阅读和快速理解代码 有没有办法打印出我在编辑器中看到的突出显示的文本 它不是 R Studio 解
  • 处理 Git 损坏的对象和树中的“有点 git”

    我尝试使用过滤器分支重写历史记录 以便使用以下命令删除占用 SHA 的少量内存 超过 300 MB git filter branch index filter git rm ignore unmatch cached
  • 数据转换(收集?)

    我有以下内容 id a b c d 1 10 20 33 42 2 30 20 32 42 3 34 24 35 32 4 32 24 35 25 5 22 14 35 36 但我宁愿以这种形式 只有列 a 和 b id aOrB valu
  • 在 C# Azure 函数 (v2) 中使用来自 Azure Key Vault 的不可导出客户端证书

    我正在尝试设置对外部 API 的客户端证书身份验证 这不可出口的客户端证书位于 Azure Key Vault 中 我的代码是应用服务计划中托管的 Azure v2 函数中的 C NET Core 由于客户端证书不可导出 因此我无法将其放入
  • 在apache中添加标头

    我在这台服务器上有 apache 和许多图像 例如 http test com images abc jpg我希望有可能这样做 如果用户像这样访问网址http test com images download abc jpgapache必须
  • 重新定位法律标签 ( MKAttributionLabel )

    我想将法律标签移至右侧 在 iOS 6 和 7 上 以下解决方案工作正常 但在 iOS 8 3 上似乎不起作用 我得到标签 然后用一个计时器 0 1秒 viewDidLayoutSubviews我称这个方法为 void moveLegalL
  • 我应该使用线程还是任务 - 多客户端模拟

    我正在编写一个客户端模拟程序 其中所有模拟客户端都针对服务器运行一些预定义的例程 这是一个在天蓝色中运行的具有四个实例的 Web 服务器 所有模拟客户端在连接到服务器后都运行相同的例程 任何时候我都想使用我的程序模拟 300 到 800 个
  • 将带点的线添加到 ggplot2 中的绘图中

    为了方便起见 我想编写一个函数 将线图和散点图添加到现有的图中 我定义 addlinetoplot lt function dataset varx vary p lt geom line data dataset aes string x
  • 如何使用express-validator npm 验证密码

    我正在使用 Node 和 Express Web 模块编写 REST API 为了验证我正在使用快速验证器npm 我想在密码字段上应用一些验证规则 如何使用快速验证器来实现它 我想申请密码的验证规则为 最小 8 个字符长 至少一个大写字母
  • MVC 3:将用户控件添加到 Razor 视图

    我有一个 DLL 其中包含一个用户控件 在 Web 窗体视图中我可以通过使用轻松使用它 但如何在 Razor 视图中执行此操作呢 您无法将服务器端控件添加到 Razor 视图 一般来说 在 ASP NET MVC 应用程序中这样做是非常糟糕
  • 如何在一个 git 存储库中查找最新的提交?

    我有一个git存储库 有很多分支很多提交 我想找到最新的10个提交 如何做到这一点 谢谢 如果你想提交所有分支 你需要 all 参数 用 10 将 git log 限制为 10 并使用 date order 告诉 git log 根据日期对
  • 从 S3 wagtail 提供静态文件和媒体文件

    我们将开始使用 S3 来托管我们的静态和媒体文件 有谁有一个很好的链接来描述如何用鹡鸰做到这两点 我们正在使用 Wagtail 1 9 我无法让他们两个同时工作 https wagtail io blog amazon s3 for med
  • Android 5.1.1 及更高版本 - getRunningAppProcesses() 仅返回我的应用程序包

    看来谷歌终于关闭了获取当前前台应用程序包的所有大门 棒棒糖更新后 杀死了getRunningTasks int maxNum http developer android com intl zh cn reference android a
  • 根据R和plotly中的范围制作堆积条形图

    我想在 R 中创建一个堆积条形图并使用 iris 数据集绘制 在 x 轴中 我想在代码中设置像下面的 iris limits 这样的限制 y 轴应该包含适合这些范围的所有 Sepal Length 值 我想将这些值作为单个向量传递 另外 如
  • 使用哈希图创建文本字数统计

    我正在尝试创建一个程序作为我自己的哈希图教程 我要求用户输入文本并尝试将其拆分为哈希图 然后如果单词重复则增加计数 这是我的程序 import java util import java lang import javax swing JO
  • 找出将 n 表示为两个有边界整数之和的方法数

    我正在玩 codefight 但我真的被困住了 到下面的有效问题 Problem 给定整数 n l 和 r 找到将 n 表示为两个整数 A 和 B 之和的方法数 使得 l A B r Example 对于 n 6 l 2 且 r 4 输出应
  • 从AWS S3下载文件时的文件编码问题

    我在 AWS S3 中有一个 CSV 文件 我试图在本地临时文件中打开该文件 这是代码 s3 Aws S3 Resource new bucket s3 bucket bucket name obj bucket object object
  • Linux 中的安全 Python 环境

    是否可以创建一个在Linux下安全运行任意Python脚本的环境 这些脚本应该是从不受信任的人那里收到的 并且可能太大而无法手动检查 一个非常暴力的解决方案是创建一个虚拟机并在每次启动不受信任的脚本后恢复其初始状态 太贵了 我想知道是否可以
  • C# 字典 ValueOrNull / ValueorDefault

    目前我正在使用 var x dict ContainsKey key dict key defaultValue 我想要某种方法让字典 key 对于不存在的键返回null 所以我可以写类似的东西 var x dict key default