博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
扩展方法判断序列(或集合)是否包含元素
阅读量:6773 次
发布时间:2019-06-26

本文共 1407 字,大约阅读时间需要 4 分钟。

自定义扩展方法:

public static class EnumerableExtensions    {        public static bool IsEmpty
(this IEnumerable
source) { return !source.Any(); } public static bool IsNotEmpty
(this IEnumerable
source) { return source.Any(); } }

 

测试用到的Person类:

public class Person    {        private int id;        public int Id        {            get { return id; }            set { id = value; }        }        private string name;        public string Name        {            get { return name; }            set { name = value; }        }            }

mian函数:

static void Main(string[] args)        {            List
list = new List
() { new Person{Id=1,Name="张三"}, new Person{Id=2,Name="李四"}, }; if (list.IsNotEmpty()) { Console.WriteLine("not empty"); } else { Console.WriteLine("empty"); } Console.ReadKey(); }

运行截图:

 

总结:其实只是对linq中的Any()方法进行了一下简单的封装。

用source.Any()方法比用source.Count()>0较好,是因为source.Count()>0 遇到 yeild return等情况时会出现性能问题。

简言之,用source.Any()方法比较高效和保险。

而source.Any()的名字没IsEmpty和IsNotEmpty通俗易懂(好听),故,用扩展方法封装了一下。

转载于:https://www.cnblogs.com/527289276qq/p/4575268.html

你可能感兴趣的文章
《编写可读代码的艺术》读书文摘--第五章 该写什么样的注释 第六章 写出言简意赅的注释...
查看>>
js全选作为按钮实现全选和不全选的操作
查看>>
DRBD8.4.4配置Primary-Secondary冗余模式(完全是自己手动做的)
查看>>
无路由权限的情况下让外网访问内网服务器——SSH反向隧道
查看>>
Python实现Linux中简单du命令
查看>>
利用Prometheus和Grafana监控MySQL
查看>>
思科Router和Switch的最基本配置
查看>>
iptables交互配置脚本【Linux运维之道之脚本案例】
查看>>
Performance Explorer--.NET性能分析工具
查看>>
问题:QT移植之tslib 1.4.1
查看>>
7 个抓取 Java Thread Dumps 的方式
查看>>
如何开发AR增强现实应用与产品
查看>>
gvim的配置
查看>>
Puppet系列之六:如何更加安全高效地实现Puppet的推送更新功能
查看>>
架构随笔 - 应用架构 - 天涯论坛 - 进行篇
查看>>
看到麦兜写的很好,决定自己也来一个
查看>>
Python
查看>>
libmemcached1.0.2 C/C++ API使用实例、测试及修改
查看>>
python 基础语法
查看>>
浅谈“canonical”标签在seo优化中的运用
查看>>