📌

C#で文字列から指定した型の値に変換する

2022/10/21に公開

文字列を入力として受け取り指定した型の値に変換する処理。
System.ComponentModel.TypeDescriptor.GetConverterで取得できるSystem.ComponentModel.TypeConverterを使用することで簡単にできる。

// Type指定版
static object Convert(System.Type type, string stringValue)
{
    var converter = System.ComponentModel.TypeDescriptor.GetConverter(type);
    return converter.ConvertFrom(stringValue);
}

// Generics版
static T Convert<T>(string stringValue)
{
    var converter = System.ComponentModel.TypeDescriptor.GetConverter(typeof(T));
    return (T)converter.ConvertFrom(stringValue);
}

使用例

var a = Convert(typeof(int), "42");
var b = Convert<int>("42");

Discussion