ExtensionMethod.NET Home of 880 C#, Visual Basic, F# and Javascript extension methods

Parse<T>

Parse a string to any other type including nullable types.

Source

using System;
using System.ComponentModel;

public static class Parser {
    
    public static T Parse<T>(this string value) {        
        // Get default value for type so if string
        // is empty then we can return default value.
        T result = default(T); 
        if (!string.IsNullOrEmpty(value)) {            
            // we are not going to handle exception here
            // if you need SafeParse then you should create
            // another method specially for that.
            TypeConverter tc = TypeDescriptor.GetConverter(typeof(T)); 
            result = (T)tc.ConvertFrom(value);
        } return result;
    }
}

Example

// regular parsing
int i = "123".Parse<int>(); 
int? inull = "123".Parse<int?>(); 
DateTime d = "01/12/2008".Parse<DateTime>(); 
DateTime? dn = "01/12/2008".Parse<DateTime?>();


// null values
string sample = null; 
int? k = sample.Parse<int?>(); // returns null
int l = sample.Parse<int>();   // returns 0
DateTime dd = sample.Parse<DateTime>(); // returns 01/01/0001
DateTime? ddn = sample.Parse<DateTime?>(); // returns null

Author: Jigar Desai

Submitted on: 27 mrt. 2008

Language: C#

Type: System.String

Views: 13384