Data Types C#

//http://advancementvoyage.codeplex.com/
//Microsoft Public License (Ms-PL)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AdvancementVoyage.Magic.Utility
{
    /// 
    /// Extension methods for the int type.
    /// 

    public static class IntExtensions
    {
        /// 
        /// Converts an integer into a roman numeral.
        /// 

        /// 
        /// The number being transformed.
        /// 
        /// 
        /// A string representation of the number's corresponding roman numeral.
        /// 

        public static string ToRomanNumeral(this int number)
        {
            var retVal = new StringBuilder(5);
            var valueMap = new SortedDictionary
                               {
                                   { 1, "I" },
                                   { 4, "IV" },
                                   { 5, "V" },
                                   { 9, "IX" },
                                   { 10, "X" },
                                   { 40, "XL" },
                                   { 50, "L" },
                                   { 90, "XC" },
                                   { 100, "C" },
                                   { 400, "CD" },
                                   { 500, "D" },
                                   { 900, "CM" },
                                   { 1000, "M" },
                               };
            foreach (var kvp in valueMap.Reverse())
            {
                while (number >= kvp.Key)
                {
                    number -= kvp.Key;
                    retVal.Append(kvp.Value);
                }
            }
            return retVal.ToString();
        }
    }
}