检查 lambda 表达式中的空值
本文关键字:空值 表达式 lambda 检查 | 更新日期: 2023-09-27 18:34:18
在下面的代码中,我试图从列表中获取空,空字符串和源组件。我还没有测试过这段代码,但我的直觉告诉我,如果它来自空值,它在过滤 List 中的源和空字符串时会中断。
我尝试先提取空值,但我仍在过滤基本列表。如何重写此代码以最佳方式完成我尝试执行的操作?
List<LineItem> nullList=itemsList.Where(s => s[Constants.ProductSource] == null)
.ToList();
NALineItems = itemsList.Where(s => s[Constants.ProductSource] == source
|| s[Constants.ProductSource] == String.Empty)
.ToList();
NALineItems = nullList.Union(NALineItems).ToList();
s[Constants.ProductSource] 是 ECommerce PurchaseOrder 对象的附件属性Microsoft。它基本上是一个对象的另一个属性。
基于">我正在尝试从列表中获取空、空字符串和源组件",我假设您的意思是您想要一个包含这 3 个特定值的列表。
var allItems = itemsList
.Where(s => string.IsNullOrEmpty(s[Constants.ProductSource])
|| s[Constants.ProductSource] == source)
.ToList()
有什么
理由不能将表达式合并为一个表达式吗? 我还要检查该键是否存在于字典中:
List<LineItem> NALineItems = itemsList.Where(s =>
s.ContainsKey(Constants.ProductSource) && (
String.IsNullOrEmpty(s[Constants.ProductSource]) ||
s[Constants.ProductSource] == source))
.ToList();