[英]InvalidCastException/Serialization Exception when trying to read from .bin file
[英]InvalidCastException when trying to make a list from xml file
我正在尝试使用从xml文件读取信息的MVC在Web应用程序中创建表格。 我试图先排序此列表,然后再将其发送回控制器,但orderby行上有一个InvalidCastException。 我究竟做错了什么?
string xmlData = HttpContext.Current.Server.MapPath("~/App_Data/HighScores.xml");
DataSet ds = new DataSet();
ds.ReadXml(xmlData);
var scores = new List<ExternalScoreModel>();
try
{
scores = (from r in ds.Tables[0].AsEnumerable()
orderby r.Field<Int32>("Score") descending
select new ExternalScoreModel
{
Score = Convert.ToInt32(r[0]),
FirstName = r[1].ToString(),
LastName = r[2].ToString(),
}).ToList();
}
catch (IndexOutOfRangeException e)
{
//TODO
}
return scores;
通过将orderby移动到select之后来解决此问题
scores = (from r in ds.Tables[0].AsEnumerable()
select new ExternalScoreModel
{
Score = Convert.ToInt32(r[0]),
FirstName = r[1].ToString(),
LastName = r[2].ToString(),
}).OrderByDescending(x => x.Score).ToList();
“得分”列中的数据很可能不是整数。 仔细检查XML文件中的数据。 该值也可能会丢失或为null,在这种情况下,您可以执行以下操作,并将分数设为0或其他所需的值。
orderby r.Field<Int32?>("Score") == null ? 0 : r.Field<Int32>("Score") descending
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.