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

yipeiwu_com6年前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获取栏目的所有子级和孙级栏目的ID号示例

复制代码 代码如下: //@获取子栏目ID号 private function sonCategoryIds($categoryID) { //@初始化栏目数组 $array[] = $...

php实现的生成迷宫与迷宫寻址算法完整实例

php实现的生成迷宫与迷宫寻址算法完整实例

本文实例讲述了php实现的生成迷宫与迷宫寻址算法。分享给大家供大家参考,具体如下: 较之前的终于有所改善。生成迷宫的算法和寻址算法其实是一样。只是一个用了遍历一个用了递归。参考了网上的M...

PHP实现对数组简单求交集,差集,并集功能示例

PHP实现对数组简单求交集,差集,并集功能示例

本文实例讲述了PHP实现对数组简单求交集,差集,并集功能。分享给大家供大家参考,具体如下: <?php $arr1 = array( '0' => 'zero',...

php数组函数序列之array_unshift() 在数组开头插入一个或多个元素

array_unshift()定义和用法 array_unshift() 函数在数组开头插入一个或多个元素。 被加上的元素作为一个整体添加,这些元素在数组中的顺序和在参数中的顺序一样。...

PHP常用操作类之通信数据封装类的实现

PHP常用操作类之通信数据封装类的实现

前言 本文主要给大家介绍了关于PHP常用操作类之通信数据封装类实现的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍: 必要性 不管在B/S架构中,还是C/S架构中...