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

yipeiwu_com5年前PHP代码库
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实现图片转换成ASCII码的方法

本文实例讲述了php实现图片转换成ASCII码的方法。分享给大家供大家参考。具体如下: php图片转换成ASCII码,转换后可以直接通过字符串显示图片 <html> &...

php数组函数序列之array_sum() - 计算数组元素值之和

array_sum()定义和用法 array_sum() 函数返回数组中所有值的总和。 如果所有值都是整数,则返回一个整数值。如果其中有一个或多个值是浮点数,则返回浮点数。 PHP 4....

PHP的时间戳与具体时间转化的简单实现

三个内置函数: time() //获取UNIX系统时间戳 mktime(hour,minute,second,month,day,year) //将指定时间转化为时间戳 d...

使用adodb lite解决问题

我使用adodb完整版的时候, 服务器竟然不支持,我差点自己去写个类, 把adodb的函数实现,以致我不用改我的程序但是现在我用了adodb-lite,这个是简化的版本,还不错,挺好的h...

PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能

本文实例讲述了PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能。分享给大家供大家参考,具体如下: <?php $n=$_REQUEST["n"]; if...