c# – 检查通用IEnumerable是否为空
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 检查通用IEnumerable是否为空,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含866字,纯文字阅读大概需要2分钟。
内容图文
![c# – 检查通用IEnumerable是否为空](/upload/InfoBanner/zyjiaocheng/766/a395a385d1b441698e136aad81c6e5ca.jpg)
假设我有一个可以是IEnumerable< T>类型的对象.我想编写一个方法,如果对象的类型为IEnumerable< T>,则为null,并且不为空,则返回true.
这是我到目前为止所得到的:
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是IEnumerable< object>返回false.
知道如何让所有通用的IEnumerables工作吗?
解决方法:
由于类型可能是未知的,您可以尝试检查IEnumerable接口并在枚举器上使用MoveNext().
编辑:我更新了方法名称.由于原始问题代码检查集合中是否有项目,因此现在使用逻辑更有意义.
public bool IsNotNullOrEmpty(object enumerable)
{
if (enumerable != null)
{
if (enumerable is IEnumerable)
{
using(var enumerator = ((IEnumerable)enumerable).GetEnumerator())
return enumerator.MoveNext();
}
}
return false;
}
内容总结
以上是互联网集市为您收集整理的c# – 检查通用IEnumerable是否为空全部内容,希望文章能够帮你解决c# – 检查通用IEnumerable是否为空所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。