我有一个进料来其泛型Ť基于解析器不同的属性序列化为逗号分隔值的字符串中的不同性质
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值,它仍然会失败。我认为你将不得不检查数值并确定类型。 –