Mercurial > silverbladetech
view MetroWpf/MetroWpf.Framework/Extensions/TextReaderExtensions.cs @ 60:fc62c971a117
upload to blog
author | Steven Hollidge <stevenhollidge@hotmail.com> |
---|---|
date | Sat, 21 Apr 2012 21:19:39 +0100 |
parents | 060f02cd4591 |
children |
line wrap: on
line source
using System; using System.Collections.Generic; using System.IO; namespace MetroWpf { /// <summary> /// Extension methods for the TextReader class and its sub classes (StreamReader, StringReader) /// </summary> public static class TextReaderExtensions { #region · Extensions · /// <summary> /// The method provides an iterator through all lines of the text reader. /// </summary> /// <param name="reader">The text reader.</param> /// <returns>The iterator</returns> /// <example> /// <code> /// using(var reader = fileInfo.OpenText()) { /// foreach(var line in reader.IterateLines()) { /// // ... /// } /// } /// </code></example> /// <remarks>Contributed by OlivierJ</remarks> public static IEnumerable<string> IterateLines(this TextReader reader) { string line = null; while ((line = reader.ReadLine()) != null) { yield return line; } } /// <summary> /// The method executes the passed delegate /lambda expression) for all lines of the text reader. /// </summary> /// <param name="reader">The text reader.</param> /// <param name="action">The action.</param> /// <example> /// <code> /// using(var reader = fileInfo.OpenText()) { /// reader.IterateLines(l => Console.WriteLine(l)); /// } /// </code></example> /// <remarks>Contributed by OlivierJ</remarks> public static void IterateLines(this TextReader reader, Action<string> action) { foreach (var line in reader.IterateLines()) { action(line); } } #endregion } }