以下是目前的代码:
public bool IsNullOrEmpty(object obj)
{
if (obj != null)
{
if (obj is IEnumerable<object>)
{
return (obj as IEnumerable<object>).Any();
}
}
return false;
}
如果我传递的对象是
List<string>
类型,那么这个方法可以正常工作,但如果我传递的对象是List<int>
类型,则无法正常工作。它失败的原因是因为obj is IEnumerable<object>
返回false
。
你有什么办法可以让这个方法适用于所有通用的IEnumerable
吗?
IEnumerable[<T>]
可重复,因此:调用.Any()
可能意味着您永远无法获取实际数据。 - Marc Gravellfalse
的List<bool>
,那么这个函数会出问题吗? - Dakotah HicockAny()
的取反结果吗? - O. R. MapperAny
没有 lambda 参数时不会尝试评估其内容 - 它只会检查任何成员的存在。 - D StanleyAny()
的情况都是正确的,无论是在此处显示的方法内部还是外部。 - O. R. Mapper