我正在尝试转换由逗号分隔的字符串,其中包含7个值:
2014-21-2,1207.81,1209.87,1202.84,1203.79,1862300,1203.79
到另一个模型:
return lines[1].Split(',').Select(i => new StockModel
{
StockDate = DateTime.ParseExact(i.ToString(), "yyyy-MM-dd", null),
StockOpen = float.Parse(i.ToString()),
StockHigh = float.Parse(i.ToString()),
StockLow = float.Parse(i.ToString()),
StockClose = float.Parse(i.ToString()),
StockVolume = Convert.ToInt32(i.ToString()),
StockAdjustedClose = float.Parse(i.ToString()),
StockSymbol = stockSymbol
}).SingleOrDefault();
但是我收到的错误包括:Additional information: Input string was not in a correct format.
http://s17.postimg.org/ro4k3tzct/Screenshot_1.png
如果我手动执行此操作:DateTime date = DateTime.Parse(lines[1].Split(',')[0])
,则可以正常使用。
无论我想在新模型中添加什么价值,我都会遇到这样的错误。
答案 0 :(得分:2)
好的,我看到了问题。你不应该在这里使用Select
。请尝试以下方式:
var i = lines[1].Split(',');
return new StockModel()
{
StockDate = DateTime.ParseExact(i[0].ToString(), "yyyy-MM-dd", null),
StockOpen = float.Parse(i[1].ToString()),
StockHigh = float.Parse(i[2].ToString()),
StockLow = float.Parse(i[3].ToString()),
StockClose = float.Parse(i[4].ToString()),
StockVolume = Convert.ToInt32(i[5].ToString()),
StockAdjustedClose = float.Parse(i[6].ToString()),
StockSymbol = stockSymbol
};