linq .Value 可空对象必须有一个值。如何跳过?

2024-03-14

我有一些 linq 代码,有时null:

        cbo3.ItemsSource = empty.Union(from a in
                                           (from b in CompleteData
                                            select b.TourOpID).Distinct()
                                       select new ComboBoxItemString() { ValueString = a.Value.ToString() });

But TourOpID有时是null抛出错误a.Value.ToString()。我该如何解决这个问题?


出现此问题的原因是您访问Value财产 http://msdn.microsoft.com/en-us/library/ydkbatt6.aspx of a Nullable类型是null(或者,更准确地说,谁的HasValue财产是false)。如何解决此问题取决于您想要执行的操作:

  1. 如果您想过滤掉其中的项目TourOpID为空,只需添加一个where clause:

    ...
    (from b in CompleteData
     where b.TourOpID != null         // filter
     select b.TourOpID).Distinct()
    ...
    
  2. 如果您想使用替换值,例如0, if TourOpID为空,使用空合并运算符 http://msdn.microsoft.com/en-us/library/ms173224.aspx ??,这将转换你的int?进入一个int:

    ...
    (from b in CompleteData
     select b.TourOpID ?? 0).Distinct()
    ...
    

    或者,或者,

    ...
    select new ComboBoxItemString() { ValueString = a.GetValueOrDefault().ToString() });
    
  3. 如果您只想显示不同的 ComboBox 条目TourOpID为空,使用三元运算符?::

    ...
    select new ComboBoxItemString() { 
        ValueString = (a == null ? "no tour operator" : a.Value.ToString())
    });
    

    如果你想显示空字符串 ifa为 null,解决方案更简单:

    ...
    select new ComboBoxItemString() { ValueString = a.ToString() });
    

    since Nullable.ToString http://msdn.microsoft.com/en-us/library/9hd15ket.aspx如果没有值,则返回空字符串。

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

linq .Value 可空对象必须有一个值。如何跳过? 的相关文章

  • TFS API - 缓慢的 foreach 变更集迭代

    问题背景 我正在使用 TFS api 查询 TFS 服务器上的大范围 1 600 文件 我从每个文件中收集其所有 ChangesetId 然后将其收集在列表中 代码 这是我正在使用的代码 它可以正确生成 QueryHistory 方法中指定
  • 了解 VerQueryValue

    在 MSDN 上 我注意到 VerQueryValue 函数的以下内容 lplp缓冲区 输出 低电压空洞当此方法返回时 包含指向 pBlock 指向的缓冲区中所请求版本信息的指针的地址 当关联的 pBlock 内存被释放时 lplpBuff
  • Excel的解析路径

    其实我想问以下问题 对于位于 目录中定义的 PATH 怎么能 我找出这些目录中的哪个 找到了 因为我需要使用 Process Run 从 C 运行 Excel 并且只需指示 Excel 即可正常工作 Windows 似乎知道在哪里可以找到它
  • C++:Linux平台上的线程同步场景

    我正在为 Linux 平台实现多线程 C 程序 其中我需要类似于 WaitForMultipleObjects 的功能 在搜索解决方案时 我发现有一些文章描述了如何在 Linux 中实现 WaitForMultipleObjects 功能
  • 纹理映射 C++ OpenGL

    我已经阅读了相关内容 包括 Nehe 和此处的解决方案 但我找不到具体的答案 我正在尝试加载一张名为stars jpg 的照片 我想通过使用 uv 坐标映射它来使其成为场景的背景 方法是 glBegin GL QUADS glTexCoor
  • MigraDoc 项目符号列表(漏洞)

    在我的解决方案中 我在 PDF 文件中使用项目符号列表 它看起来像这样 Solcellepaneler kr ver hverken autoriseret service eller tidskr vende vedligehold So
  • 如何在 C++ 中对四元结构进行有效排序?

    我有一个包含 x y z 和 w 成员的结构 如何高效排序 在 C 中首先按 x 然后按 y 按 z 最后按 w 如果你想实现字典排序 那么最简单的方法是使用std tie实现小于或大于比较运算符或函子 然后使用std sort http
  • 如何让BackgroundWorker返回一个对象

    我需要做RunWorkerAsync 返回一个List
  • .NET:EventHandler 竞争条件修复如何工作?

    以下模式用于在引发事件时避免竞争条件 以防另一个线程取消订阅 MyEvent 使其为空 class MyClass public event EventHandler MyEvent public void F EventHandler h
  • 获取不带波形符的泛型类名称[重复]

    这个问题在这里已经有答案了 我正在尝试获取类型名称T使用这个 typeof T Name 班级名称是ConfigSettings 而不是返回ConfigSettings它正在返回ConfigSettings 1 有什么具体原因吗 我怎样才能
  • 用于轻松动态反射的 C# 库

    是否有任何库 例如开源项目等 可以更轻松地使用复杂的反射 例如动态创建对象或类 检查实例等 Thanks 有一个LinFu http www codeproject com KB cs LinFuPart1 aspx可用的库除了反射之外还可
  • 会员提供商使用还是不使用?

    我正在开发一个使用 Facebook 的网站 现在为了管理用户我想使用MembershipProvider并选择开发一个定制的会员提供商 我的问题是我的数据库架构与标准成员资格架构不匹配 并且提供的用于覆盖的函数采用与我预期不同的参数 例如
  • gcc 删除内联汇编代码

    看起来 gcc 4 6 2 删除了它认为函数中未使用的代码 test c int main void goto exit handler asm volatile jmp 0x0 exit return 0 拆解main 0x0804840
  • 如何使用 Linq to Sql 修剪值?

    在数据库中 我有一个名为 联系人 的表 名字和其他此类字符串字段设计为使用 Char 数据类型 不是我的数据库设计 我的对象 Contact 映射到属性中的字符串类型 如果我想做一个简单的测试 通过 id 检索 Contact 对象 我会这
  • 在unity3D中显示数学方程

    我想使用它的 GUI 系统统一显示数学方程 有办法吗 我正在使用 C 语言在 Unity 中进行编程 如果我还可以使用 C 代码显示数学符号 这对我来说会很有用 谢谢 自 2016 年起 您可以使用TEXDraw https assetst
  • 如何使用 HttpClient 验证 Pardot API

    我花了大约一天的时间尝试对 Pardot API 进行身份验证 它不喜欢我尝试发布消息正文的方式 所以我想发布对我有用的解决方案 如果您有任何建议或替代方案 我想听听 ServicePointManager SecurityProtocol
  • 获取RFC返回的嵌套结构的值?

    我是 C 新手 我有 rfc 它以嵌套结构的形式从 SAP 系统返回数据 但是当我使用以下方式获取该数据时 IrfcTable table rfc getTable exporting parameter et customer 它仅返回第
  • cmake 包括其他目录中的 h 文件

    我在 cmake 项目下进行测试时遇到问题 我的项目是这样安排的 TerrainMap PointAccumulator heightQuadGrid Test 在 TerrainMap 目录中 CMakeLists txt 文件简单地概述
  • 当一种语言是另一种语言的平行超集时,这意味着什么?

    我正在阅读关于实时并发 C 的期刊文章 http link springer com article 10 1007 2FBF00365999 并且它在摘要中提到 因此你们中的任何人都可以通过该链接查看上下文 Concurrent C 是
  • 使用客户端 hello 消息进行 TLS 协议检测

    我需要检测网络流量中的 https 数据包 到目前为止 我将所有 443 标记为 https 但我不想再在这种情况下使用端口信息 检查客户端问候消息是否足够 Check 22 and version info 0300 0301 or 03

随机推荐

  • 我该如何解决这个警告? “遇到两个拥有相同钥匙的孩子`.$1/.$2`”

    我正在使用导入 react native form select picker 在我的反应本机应用程序中进行选择输入 并且代码工作正常 但它仍然给我一个警告 遇到两个具有相同密钥的孩子 1 2 那么我该如何解决这个问题有人可以帮忙吗 下面是
  • C 标准库函数名称中的“f”代表什么?

    什么是fC 标准库函数的名称代表什么 我注意到很多函数都有一个f以他们的名义 这对我来说真的没有意义 例如 fgets fopen printf scanf sqrtf等等 你的问题总体来说太笼统了 但我可以解释一些例子 fgets htt
  • 在不同列中显示列表项元素

    我正在尝试更改 DataLife Engine 模板的外观 我想知道您是否可以帮助我进行对齐 我有一列显示一些信息 如下所示 div class short description div class table ul class tabl
  • const 记录参数的 [Ref] 属性有用吗?

    对于最新的 Delphi 版本 Berlin 10 1 24 Ref 属性真的有必要吗 我问这个是因为在线文档 http docwiki embarcadero com RADStudio Berlin en Parameters Delp
  • 迭代 Doctrine 的变更集

    我正在尝试记录用户在我的网站上执行的特定操作 并让侦听器检查某些实体是否正在更新 如果是这样 我的目标是记录他们正在编辑的字段 但不是所有字段 有些字段并不重要 或太长 我在将更改集保存到数据库时遇到问题 这就是为什么我想过滤重要字段 这可
  • 当用户填写表单时运行 javascript

    我是 Google Apps 脚本新手 需要帮助 我正在努力实现以下目标 在 Google 表单中设置文本框失去焦点的触发器 此事件中的代码将是 获取文本框的值 设置文本框的值 不幸的是 目前 Google Apps 脚本和 Google
  • 不带斜体的 MathJax 字体

    我想用MathJax http www mathjax org使用常规字体 而不是斜体 我尝试加载不同的 STIX 字体 但使用 MathJax 渲染的符号始终转换为斜体 我查过STIX 字体常见问题解答页面 http www stixfo
  • 创建一个html5音频并播放它不起作用

    我想动态创建一个 html5 音频并播放它 代码如下 function playAnotherMusic playUrl var audioElement document createElement audio audioElement
  • 如果出现错误,请停止在 jquery 中提交表单

    这是我的代码 http jsfiddle net Xk38X 6 http jsfiddle net Xk38X 6 register click function if company f val length 0 company f c
  • 如何检测任何类型的用户交互?

    安全问题 我现在不知道这是如何发生的 但这个问题的读者会想到这个问题的解决方案是一种安全威胁 所以请记住 我感兴趣的所有数据都是测量用户进入 活动的时间 就这样 用户做了什么 我是NOT有兴趣 我需要的是非常简单的概念 但我找不到解决方案
  • 发送文件到 Mule 入站端点

    我正在尝试将包含文件和两个输入的表单发送到 Mule 入站端点 我有一个自定义处理器和一个定义如下的流程
  • 如何在ggplot中缩放独立层的颜色?

    我有一个数据集 记录了三座建筑物的能源使用情况 我有一个融化的数据框 可以从钻石组中模仿 data lt melt diamonds c depth table cut color id c cut color 本质上 我有来自三个不同建筑
  • Stripe 订阅取消和重新激活模型的最佳实践

    我正在开发一个应用程序 该应用程序有 Stripe 的每月订阅计划 我正在创建一个客户然后订阅供用户订阅 这对我来说效果很好 但我还没有弄清楚如何使用 Stripe 订阅创建取消流程 我使用了取消订阅按钮stripe subscriptio
  • 目标元素位于其他元素之前

    在我对此进行研究的过程中 我偶然发现这个线程 https stackoverflow com questions 10225364 select specific element before other element 但由于它已有 2
  • 用户完成编辑后如何从 EditText 上移除焦点?

    我的布局上有一个 EditText 用户输入一些文本并点击 完成 键后 我想从中删除闪烁的光标 我搜索了 StackOverflow 并找到了 3 个对我不起作用的答案 闪烁的光标仍然存在 private class MyOnKeyList
  • 虚拟环境下降级Python版本

    关于 TensorFlow 我总是遇到同样的错误 ModuleNotFoundError No module named tensorflow contrib 我实际上使用的是Python版本3 9不过网上看的好像是这个版本3 7是最后一个
  • 从 WHERE 子句中包含 Varying IN 列表的表中进行 SELECT

    我在正在处理的项目中遇到一个问题 我无法给您实际的代码 但我创建了一个可执行的示例代码 如下所示 Here temp and temp id有两张桌子 temp表包含逗号分隔的 id 列表 即VARCHAR2 temp id表包含实际的 i
  • 如何从散列的散列中提取键名?

    我有以下哈希值 HoH flintstones gt husband gt fred pal gt barney jetsons gt husband gt george wife gt jane his boy gt elroy simp
  • phpseclib 给了我一个奇怪的错误

    我试图使用这个 但它只是给了我这个错误 我不知道如何解决这个问题 警告 include once Math BigInteger php 无法打开流 否 这样的文件或目录 home www sfs web statistics public
  • linq .Value 可空对象必须有一个值。如何跳过?

    我有一些 linq 代码 有时null cbo3 ItemsSource empty Union from a in from b in CompleteData select b TourOpID Distinct select new