Converts String to Any Other Type

   
 
//http://sb2extensions.codeplex.com/
//Apache License 2.0 (Apache)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sb2.Extensions
{
    public static class NullableExtensions
    {
        /// <summary>
        /// Converts String to Any Other Type
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="input">The input.</param>
        /// <returns></returns>
        public static T? ConvertTo<T>(this string input) where T : struct
        {
            T? ret = null;

            if (!string.IsNullOrEmpty(input))
            {
                ret = (T)Convert.ChangeType(input, typeof(T));
            }

            return ret;
        }
        /// <summary>
        /// Converts String to Any Other Type
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="input">The input.</param>
        /// <param name="provider">The provider.</param>
        /// <returns></returns>
        public static T? ConvertTo<T>(this string input, IFormatProvider provider) where T : struct
        {
            T? ret = null;

            if (!string.IsNullOrEmpty(input))
            {
                ret = (T)Convert.ChangeType(input, typeof(T), provider);
            }

            return ret;
        }
        public static string ToString(this char? input)
        {
            return input.HasValue ? input.Value.ToString() : String.Empty;
        }
        public static char? ToNullableChar(this string input)
        {
            if (input.Trim().Length == 0)
                return new char?();
            else if (input.Trim().Length > 1)
                throw new ArgumentException("Cannot convert string(" + input.Trim().Length + ") to char?");
            else
                return input[0];
        }
    }
}

   
     


NumberStyles.HexNumber

   
  
using System;
using System.Globalization;

public class StringParsing
{
   public static void Main()
   {
      string numericString;
      NumberStyles styles;

      numericString = "80c1";
      CallTryParse(numericString, NumberStyles.HexNumber);
    
   }

   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      Console.WriteLine(stringToConvert);
      short number;
      bool result = Int16.TryParse(stringToConvert, styles,CultureInfo.InvariantCulture, out number);
      if (result)
         Console.WriteLine(stringToConvert, number);
      else
         Console.WriteLine("failed.");
   }
}

   
    
     


NumberStyles.Integer | NumberStyles.AllowExponent

   
  
using System;
using System.Globalization;

public class StringParsing
{
   public static void Main()
   {
      string numericString;
      NumberStyles styles;


      numericString = "12E-01";
      styles = NumberStyles.Integer | NumberStyles.AllowExponent;
      CallTryParse(numericString, styles); 
    
   }

   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      Console.WriteLine(stringToConvert);
      short number;
      bool result = Int16.TryParse(stringToConvert, styles,CultureInfo.InvariantCulture, out number);
      if (result)
         Console.WriteLine(stringToConvert, number);
      else
         Console.WriteLine("failed.");
   }
}

   
    
     


NumberStyles.Integer | NumberStyles.AllowThousands

   
  

using System;
using System.Globalization;

public class StringParsing
{
   public static void Main()
   {
      string numericString;
      NumberStyles styles;

      numericString = "22,593"; 
      styles = NumberStyles.Integer | NumberStyles.AllowThousands;
      CallTryParse(numericString, styles);
    
   }

   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      Console.WriteLine(stringToConvert);
      short number;
      bool result = Int16.TryParse(stringToConvert, styles,CultureInfo.InvariantCulture, out number);
      if (result)
         Console.WriteLine(stringToConvert, number);
      else
         Console.WriteLine("failed.");
   }
}

   
    
     


NumberStyles.Integer | NumberStyles.AllowDecimalPoint

   
  
using System;
using System.Globalization;

public class StringParsing
{
   public static void Main()
   {
      string numericString;
      NumberStyles styles;

      numericString = "10345.72";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);
    
   }

   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      Console.WriteLine(stringToConvert);
      short number;
      bool result = Int16.TryParse(stringToConvert, styles,CultureInfo.InvariantCulture, out number);
      if (result)
         Console.WriteLine(stringToConvert, number);
      else
         Console.WriteLine("failed.");
   }
}

   
    
     


NumberStyles.Integer | NumberStyles.AllowDecimalPoint

   
  
using System;
using System.Globalization;

public class StringParsing
{
   public static void Main()
   {
      string numericString;
      NumberStyles styles;

      numericString = "10345.72";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);
    
   }

   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      Console.WriteLine(stringToConvert);
      short number;
      bool result = Int16.TryParse(stringToConvert, styles,CultureInfo.InvariantCulture, out number);
      if (result)
         Console.WriteLine(stringToConvert, number);
      else
         Console.WriteLine("failed.");
   }
}

   
    
     


NumberStyles.None

   
  
using System;
using System.Globalization;

public class StringParsing
{
   public static void Main()
   {
      string numericString;
      NumberStyles styles;


      numericString = "-30677";
      styles = NumberStyles.None;
      CallTryParse(numericString, styles);
    
   }

   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      Console.WriteLine(stringToConvert);
      short number;
      bool result = Int16.TryParse(stringToConvert, styles,CultureInfo.InvariantCulture, out number);
      if (result)
         Console.WriteLine(stringToConvert, number);
      else
         Console.WriteLine("failed.");
   }
}