登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

学无止境

一点积累,与大家分享

 
 
 

日志

 
 

如何:在查询表达式中处理 Null 值  

2009-12-08 12:27:43|  分类: C#技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

此示例演示如何处理源集合中可能的 null 值。诸如 IEnumerable<(Of <(T>)>) 等对象集合可能包含值为 null 的元素。如果源集合为 null 或包含值为 null 的元素,并且查询未处理 null 值,当您执行查询时将会引发 NullReferenceException

如何:在查询表达式中处理 Null 值 - 秋的季节 - 秋的博客  示例

您可以采用防御方式进行编码以避免 null 引用异常,如下面的示例中所示:

C#
var query1 =
from c in categories
where c != null
join p in products on c.ID equals
(p == null ? null : p.CategoryID)
select new { Category = c.Name, Name = p.Name };

在前面的示例中,where 子句筛选出类别序列中的所有 null 元素。此技术与 join 子句中的 null 检查无关。此示例中包含 null 的条件表达式将发挥作用,因为 Products.CategoryID 的类型为 int?Nullable<int> 的简写形式)。

在 join 子句中,只要其中一个比较键为可 null 的类型,您就可以在查询表达式中将另一个比较键强制转换为可译为 null 的类型。在下面的示例中,假定 EmployeeID 是一个列,其中包含类型为 int? 的值:

C#
void TestMethod(Northwind db)
{
var query =
from o in db.Orders
join e in db.Employees
on o.EmployeeID equals (int?)e.EmployeeID
select new { o.OrderID, e.FirstName };
}
  评论这张
 
阅读(451)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018