ひっそりと生きるプログラマのブログ

日頃気になった事なりを書き留めるブログです。関心ごとは多くもう少し更新頻度を上げたいところです。

SelectListItem へ object から変換

必要となったので個別に記載。
Value と Text の値はリフレクションで取得し設定する。

private static SelectListItem ToSelectList(
    object item, string text, string value)
{
    // 引数が null の場合はエラーとする。
    if (null == item)
        throw new ArgumentNullException("items");

    var type = item.GetType();
    var valueProperty = type.GetProperty(value);
    var textProperty = type.GetProperty(text);
    if (null == valueProperty || null == textProperty)
        throw new ArgumentException();
    return new SelectListItem() 
    { 
        Value = Convert.ToString(valueProperty.GetValue(item)), 
        Text = Convert.ToString(textProperty.GetValue(item)) 
    };
}