首页 > 解决方案 > 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<>它不起作用,因为值类型缺乏协方差。

有没有一种方法可以解决这个问题而不需要大量的反思?

标签: c#.netcollections

解决方案


我会让你当前的方法只处理非集合类型。创建一个接受 IEnumerable 的新方法来处理检查集合。

至于检查空值,为什么不只做 x == null 或 Object.Equals(x, null) ?


推荐阅读