检查lambda表达式中的属性是否为null
我有一个对象列表,我试图绑定到列表视图。 我按两个属性排序。 存在一些问题,即某些记录可能没有其中一个属性。 这导致错误。 我希望它仍然绑定具有该属性的记录。
IEnumerable list = retailerList.Cast(); lvwRetailStores.DataSource = list.OrderByDescending(r => r.Properties["RS_Partner Type"].ToString()) .ThenBy(r => r.Properties["RS_Title"].ToString());
list.Where(r => r.Properties["RS_Partner_Type"] != null && r.Properties["RS_Title"] != null) .OrderByDescending(r => r.Properties["RS_Partner Type"].ToString()) .ThenBy(r => r.Properties["RS_Title"].ToString());
或者代替!= null,使用Properties集合具有的任何测试。
我发现了?? 运营商运作良好。 我使用括号来评估null,
例如:
Datetime? Today = DateTimeValue // Check for Null, if Null put Today's date datetime GoodDate = Today ?? DateTime.Now
同样的逻辑在Lambda中起作用,只需使用括号来确保使用正确的比较。
您可以在lambda中使用三元表达式:
list.OrderByDescending(r => r.Properties["RS_Partner_Type"] == null ? null : r.Properties["RS_Partner Type"].ToString()) .ThenBy(r => r.Properties["RS_Title"] == null ? null : r.Properties["RS_Title"].ToString());
另一种常见方法是为集合提供合适的默认值,并在集合没有特定键时返回该值。 例如,如果Properties
实现了IDictionary,
上述就是C#学习教程:检查lambda表达式中的属性是否为null分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
public static class IDictionaryExtension { public static TValue GetValue(this IDictionary dict, TKey key, TValue default) { TValue result; return dict.TryGetValue(key, out result) ? result : dflt; } } ... lvwRetailStores.DataSource = list.OrderByDescending(r => r.GetValue("RS_Partner Type", "").ToString()) .ThenBy(r => r.GetValue("RS_Title","").ToString());
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1013220.html