在我的控制器中,我使用WCF提取一些信息。为简单起见,我已将所有内容放在StringBuilder()
中,并通过foreach
循环从我的列表中迭代我的信息,如下所示:
var myResult = new StringBuilder();
foreach (var myFruit in response.GetContestResult.ContestEndTimes.ToList())
htmlResult.AppendFormat("{0} Avg End Time: {1} <br/>", myFruit.ContestantName, myfruit.ContestantEndTime);
return myResult.ToString();
我的endTimes
显示为秒,我想通过将myFruit.CotestantWaitTime
除以60来更改为分钟。我尝试将其更改为:
htmlResult.AppendFormat("{0} Avg End Time: {1} <br/>", myFruit.ContestantName,
Int32.Parse(myfruit.ContestantEndTime) / 60);
return myResult.ToString();
但是,然后错误读取字符串的格式不正确,即使我将其转换回字符串,也会执行相同的操作:
Convert.ToString(Int32.Parse(myfruit.ContestantEndTime) / 60))
我该怎么做?
答案 0 :(得分:0)
如果myfruit.ContestantEndTime是一个int,则int.Parse将抛出一个错误,因为此方法将一个字符串作为参数。如果是这种情况,则在分割之前不需要对其进行任何操作,只需使用:
htmlResult.AppendFormat("{0} Avg End Time: {1} <br/>", myFruit.ContestantName,
myfruit.ContestantEndTime / 60);
答案 1 :(得分:0)
如果myFruit.ContestantEndTime
属于int
类型,
htmlResult.AppendFormat("{0} Avg End Time: {1} ",
myFruit.ContestantName, myFruit.ContestantEndTime/60);
如果是string
类型,请使用Convert.ToInt32
方法将其转换为Int值。
htmlResult.AppendFormat("{0} 3Avg End Time: {1} ",
myFruit.ContestantName, Convert.ToInt32(myFruit.ContestantEndTime)/60);
以上2将生成分钟的整数表示(没有提醒)。这意味着,如果您的ContestantEndTime
值为240
或245
,则只返回4
。但如果你想要额外的秒数,你可以试试这个
htmlResult.AppendFormat("{0} Avg End Time: {1}.{2} ", myFruit.ContestantName,
myFruit.ContestantEndTime/60, myFruit.ContestantEndTime%60);
现在当你在myFruit.ContestantEndTime
中有245时,上面的表达式会给你4.2
答案 2 :(得分:0)
我打赌一个或多个参赛者的结束时间有格式错误。
您需要做的是使用Int32.TryParse
。
您还应该执行null
检查。
foreach (var myFruit in response.GetContestResult.ContestEndTimes.ToList())
{
// -1 will imply that there is an error.
int parsedTime = -1;
if (myfruit.ContestantEndTime != null &&
Int32.TryParse(myfruit.ContestantEndTime, out parsedTime))
{
parsedTime /= 60;
}
htmlResult.AppendFormat("{0} Avg End Time: {1} <br/>",
myFruit.ContestantName,
parsedTime);
}
无论myFruit.ContestantEndTime
是null
,"foo"
还是"37281"
,这都有效。您可以轻松识别出错的位置。
这里真正的问题是......为什么myFruit.ContestantEndTime
不是一个int(或任何其他数字类型)从一开始?