Csharp/C#教程:检查lambda表达式中的属性是否为null分享


检查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

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐