尝试从xml文件创建列表时出现InvalidCastException

时间:2015-06-08 18:45:40

标签: c# xml dataset

我正在尝试使用MVC在Web应用程序中创建一个表,该MVC从xml文件中读取信息。我正在尝试在将此列表发送回控制器之前对其进行排序,但我的orderby行上存在InvalidCastException。我做错了什么?

#info_text_startday:before{
position: absolute;
content: '';
z-index: 2;
background-color: black;
border: 3px solid white;
height: 300px;
width: 290px;   
}

通过将orderby移动到select

之后修复它
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;

1 个答案:

答案 0 :(得分:0)

“得分”列中的数据很可能不是Int。仔细检查XML文件中的数据。值也可能丢失或为空,在这种情况下,您可以执行以下操作,并将分数指定为0或其他任何您想要的分数。

 orderby r.Field<Int32?>("Score") == null ? 0 : r.Field<Int32>("Score") descending