使用迭代器 遍历文件信息的详解


Posted in PHP onJune 08, 2013

1.迭代文件的行

        public static IEnumerable<string> ReadLines(string fileName)
        {
            using (TextReader reader = File.OpenText(fileName))
            {
                string line;
                if ((line = reader.ReadLine()) != null)
                {
                    yield return line;
                }
            }
        }
        static void Main()
        {
            foreach (string line in Iterator.ReadLines(""))
            {
                Console.WriteLine(line);
            }
        }

2.使用迭代器和谓词对文件中的行进行筛选
       public static IEnumerable<T> where<T>(IEnumerable<T> source, Predicate<T> predicate)
        {
            if (source == null || predicate == null)
            {
                throw new ArgumentNullException();
            }
            return WhereImplemeter(source, predicate);
        }
       private static IEnumerable<T> WhereImplemeter<T>(IEnumerable<T> source, Predicate<T> predicate)
        {
            foreach (T item in source)
            {
                if (predicate(item))
                {
                    yield return item;
                }
            }
        }
        static void Main()
        {
            IEnumerable<string> lines = File.ReadAllLines(@"your file name");
            Predicate<string> predicate = delegate(string line)
            {
                return line.StartsWith("using");
            };
            foreach (string str in where(lines, predicate))
            {
                Console.WriteLine(str);
            }        }
PHP 相关文章推荐
一个取得文件扩展名的函数
Oct 09 PHP
Excel数据导入Mysql数据库的实现代码
Jun 05 PHP
php xml-rpc远程调用
Dec 19 PHP
php empty() 检查一个变量是否为空
Nov 10 PHP
PHP不用第三变量交换2个变量的值的解决方法
Jun 02 PHP
深入解析PHP的引用计数机制
Jun 14 PHP
php中如何使对象可以像数组一样进行foreach循环
Aug 09 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
Jun 08 PHP
php文档工具PHP Documentor安装与使用方法
Jan 25 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
Oct 22 PHP
laravel创建类似ThinPHP中functions.php的全局函数
Nov 26 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
Apr 23 PHP
PHP在不同页面间传递Json数据示例代码
Jun 08 #PHP
深入理解:XML与对象的序列化与反序列化
Jun 08 #PHP
探讨:使用XMLSerialize 序列化与反序列化
Jun 08 #PHP
解析PHP自带的进位制之间的转换函数
Jun 08 #PHP
深入PHP内存相关的功能特性详解
Jun 08 #PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 #PHP
PHP跳转页面的几种实现方法详解
Jun 08 #PHP
You might like
社区(php&amp;&amp;mysql)五
2006/10/09 PHP
JavaScript中实现Map的示例代码
2015/09/09 Javascript
基于jQuery滑动杆实现购买日期选择效果
2015/09/15 Javascript
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
node.js中module.exports与exports用法上的区别
2016/09/02 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
2017/01/13 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
webpack3之loader全解析
2017/10/26 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
JS代码优化的8点建议
2020/02/04 Javascript
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
python实现将汉字转换成汉语拼音的库
2015/05/05 Python
Python 中pandas.read_excel详细介绍
2017/06/23 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
python生成lmdb格式的文件实例
2018/11/08 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
Python使用plt.boxplot() 参数绘制箱线图
2020/06/04 Python
Python项目跨域问题解决方案
2020/06/22 Python
Pycharm添加虚拟解释器报错问题解决方案
2020/10/13 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
英国电动工具购买网站:Anglia Tool Centre
2017/04/25 全球购物
高三自我鉴定怎么写
2013/10/19 职场文书
幼儿园新年寄语
2014/04/03 职场文书
golang正则之命名分组方式
2021/04/25 Golang
JavaScript实例 ODO List分析
2022/01/22 Javascript
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers