最近重新研究 Lucene,然後遇到一個小問題,就是我要動態檢查物件中裡的欄位為字串或數值型別,原本想說會不會有簡單的作法,但搜尋了一下,似乎只有粗暴的做法,程式碼如下:

public static bool IsNumericType(this object o)
{
    switch (Type.GetTypeCode(o.GetType()))
    {
        case TypeCode.Byte:
        case TypeCode.SByte:
        case TypeCode.UInt16:
        case TypeCode.UInt32:
        case TypeCode.UInt64:
        case TypeCode.Int16:
        case TypeCode.Int32:
        case TypeCode.Int64:
        case TypeCode.Decimal:
        case TypeCode.Double:
        case TypeCode.Single:
            return true;
        default:
            return false;
    }
}

單純做個記錄。

參考資料