我有一個進料來其泛型Ť基於解析器不同的屬性序列化爲逗號分隔值的字符串中的不同性質
feed = "[{"HIGH", "[235.76, 235.96, 235.97]"},
{"LOW", "[235.76, 235.96, 235.97'"},
{"DATE", "[20170410-10:21:34, 20170410-10:31:34, 20170410-10:43:34, 20170410-10:59:34]" } .....
]"
我有業務需要創建一個實體出這種含不同特性的用於每個高/低/日期等現在「高」和低將是雙重的,而日期將是dateTime類型。 我分裂每個標籤後面的字符串,然後解析每個值到相應的屬性。
但是,由於該屬性的數據類型不同,我需要每種類型的解析函數。
private void GetFeedData(string[] data, List<int> field)
{
for (int i = 0; i < data.Length; i++)
{
**int fieldValue = int.Parse(data[i]);**
field.Add(fieldValue);
}
}
我已經結束了與不同的功能,一個是專門針對每種數據類型,在只是解析fieldValue方法
我想要做這樣的事情不同,但是這似乎沒有不得到支持。
private void GetFeedData<T>(string[] data, List<T> field) where T: struct
{
for (int i = 0; i < data.Length; i++)
{
T fieldValue = (T)(data[i]);
field.Add(fieldValue);
}
}
這將是所有類型的單一方法,這將是一個更容易。不知道如何做到這一點..請幫助
使用泛型不會讓您避免必須知道類型,它只是幫助您避免爲每種類型重複相同的邏輯一次。因此,舉個例子,這個調用將看起來像這樣:'GetFeedData(feed,parsedValues);'並且它仍然會嘗試將每個值解析爲一個double值,它仍然會失敗。我認爲你將不得不檢查數值並確定類型。 –