2013-02-28 32 views
0

我有一個類,一些簡單的像字符串轉換在運行時的對象類型

class Example 
{ 
    uint id; 
    ushort value1; 
    string value2; 
    DateTime timestamp; 
} 

我也有一個csv,如:

id;value1;value2;timestamp 
5;0x2313;whatever;2012-12-23-12:14:34,567 
6;0x2A14;something;2012-12-24:13:14:15:167 

我想創建一個基於CSV對象,但真正的類是一個很大很大,容易發生變化,所以我想用反射。 我有一些代碼獲取屬性的名稱並找到相應的字符串。我沒有得到的是,我如何將字符串轉換爲屬性的任何類型。我發現了一些代碼示例如何對數值進行CAST處理,但是將一個字符串轉換爲short值並不像是一個解決方案。

任何想法?

+1

你應該看看'LINQToCSV'。 – 2013-02-28 09:40:34

回答

4

可以使用Convert.ChangeType方法:

myObject.Field = Convert.ChangeType(value, fieldType); 
+0

以及我錯過了這個功能,謝謝你指出 – 2013-02-28 10:34:14

0

你可能想看看Convert類。 如果您知道要將字符串轉換爲的類型,則可以使用該類型。或者,您可以使用該類型的Parse()或TryParse()方法。

例如,將字符串轉換到短,你可以使用Int16.TryParse()

相關問題