扩展方法判断序列(或集合)是否包含元素
2015-06-14 16:36
381 查看
自定义扩展方法:
测试用到的Person类:
mian函数:
运行截图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/16/7aa00c8c4bf19e94b6deec30cb50e288.png)
总结:其实只是对linq中的Any()方法进行了一下简单的封装。
用source.Any()方法比用source.Count()>0较好,是因为source.Count()>0 遇到 yeild return等情况时会出现性能问题。
简言之,用source.Any()方法比较高效和保险。
而source.Any()的名字没IsEmpty和IsNotEmpty通俗易懂(好听),故,用扩展方法封装了一下。
public static class EnumerableExtensions { public static bool IsEmpty<T>(this IEnumerable<T> source) { return !source.Any(); } public static bool IsNotEmpty<T>(this IEnumerable<T> 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<Person> list = new List<Person>() { new Person{Id=1,Name="张三"}, new Person{Id=2,Name="李四"}, }; if (list.IsNotEmpty()) { Console.WriteLine("not empty"); } else { Console.WriteLine("empty"); } Console.ReadKey(); }
运行截图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/16/7aa00c8c4bf19e94b6deec30cb50e288.png)
总结:其实只是对linq中的Any()方法进行了一下简单的封装。
用source.Any()方法比用source.Count()>0较好,是因为source.Count()>0 遇到 yeild return等情况时会出现性能问题。
简言之,用source.Any()方法比较高效和保险。
而source.Any()的名字没IsEmpty和IsNotEmpty通俗易懂(好听),故,用扩展方法封装了一下。
相关文章推荐
- 联系方式
- Hat’s Words(字典树)
- Mysql基本用法
- 关于springmvc怎么完成中文字符的接收问题
- 清理
- 关于Mysql密码的常用操作
- hdu1068 Girls and Boys(二分图)
- best code 44 第二题 字典树
- SDUT 2933 人活着系列之Streetlights
- 7 设计模式之桥接模式(七)
- WebBrowser介绍——Javascript与C++互操作
- 图形处理算法一
- Shiro 1.2新功能DefaultPasswordService解惑
- 图形处理算法一
- BufferedReader 和 BufferedWriter
- NYOJ 014会场安排问题(排序贪心)
- LevelDB学习笔记
- Object-c-数组的使用
- 最近几周的总结
- 控制器[1]