c# - C# - 检查 IEnumerable 中的空值不同类型的
问题描述
如何检查IEnumerable<T>
T 可以是引用类型或Nullable<T>
类型的空值?
我在一个方法中收到一个object
参数,它可以是IEnumerable<string>
or IEnumerable<bool?>
or or IEnumerable<int?>
orIEnumerable<Guid?>
等等(它也可以是非集合类型......因此是object
类型)。我需要检查空值。
所以我尝试了类似value is IEnumerable<object> objValue && objValue.Contains(null)
的方法,但这仅适用于引用类型。当它是时Nullable<>
它不起作用,因为值类型缺乏协方差。
有没有一种方法可以解决这个问题而不需要大量的反思?
解决方案
我会让你当前的方法只处理非集合类型。创建一个接受 IEnumerable 的新方法来处理检查集合。
至于检查空值,为什么不只做 x == null 或 Object.Equals(x, null) ?
推荐阅读
- angular - kendi UI 角度片段小部件事件
- bpmn - 如何将 Outlook 日历与 bizagi 集成?
- python-3.x - 队列的不等价 arg 'durable'
- php - 根据表单数据和传递的值执行插入的函数
- python - Scrapy+Tkinter -> exe cx freeze(编译成exe后scrapy函数不起作用)
- angular - Angular 6. 如何在创建的 CustomControl 中给定 Validator 状态这个控件?
- sql - 红移计数(DISTINCT())。计算每个 ID 的唯一日期
- ruby-on-rails - 为什么不能在辅助函数中使用 form_tag 和 form_for [Rails]
- spring - Spring Batch Late Binding Within SQL Using Java Config
- java - 进行二分查找时如何设置中间元素?