Data Types C#

// ---------------------------------------------------------------------------------------------------------------------
//   Copyright (c) SRT Solutions 2009. All rights reserved.
// ---------------------------------------------------------------------------------------------------------------------
namespace SRTSolutions.Elevate.IO
{
    using global::System;
    using global::System.IO;
    using global::System.Linq;
    /// 
    /// Contains extension methods on the binary reader.
    /// 

    public static class BinaryReaderExtensions
    {
        /// 
        /// Reads count number of characters and returns them as a string with any
        /// null terminators removed.
        /// 

        /// The reader.
        /// The count.
        /// the characters read from the file, as a string
        public static string ReadString(this BinaryReader reader, int count)
        {
            if (reader == null)
                throw new ArgumentNullException("reader", "reader is null.");
            var charsWithoutNulls =
                reader.ReadChars(count)
                .TakeWhile(character => character != '\0')
                .ToArray();
            return new string(charsWithoutNulls);
        }
    }
}