C# 如果XML文件为空,则无法返回int
尝试为保存在XML文件中的内容设置唯一ID。 现在这是我的代码:C# 如果XML文件为空,则无法返回int,c#,asp.net,xml,C#,Asp.net,Xml,尝试为保存在XML文件中的内容设置唯一ID。 现在这是我的代码: public int getUniqueID() { var idlist = from ids in connectToXML().Descendants("moviereview") select (int)ids.Element("id"); int biggestId = idlist.Max(); if (bigges
public int getUniqueID()
{
var idlist = from ids in connectToXML().Descendants("moviereview")
select (int)ids.Element("id");
int biggestId = idlist.Max();
if (biggestId< 1 || biggestId.Equals(null))
{
return biggestId;
}
else
{
return biggestId + 1;
}
}
我试图在ID第一次运行时,如果ID为null或0,则返回一个值。因为如果我手动向XML文档中添加一些内容,然后从ID1f.ex开始,我就可以让它工作。但是,如果XML文件为空,它将不会返回值。我忽略了什么吗?使用DefaultIfEmpty:
它不会返回一个值,你是说抛出了一个异常?什么例外?它根本不会返回任何东西。只有当XML文件中有一个名为“ID”的节点返回1等时,它才会返回值。但是当XML文件为空并且我想第一次创建一个名为ID的节点时,它不允许我返回值,因为方法“getUniqueID”不返回值,它将始终返回某些内容或引发异常,因为返回类型不是void。+1。您可能需要在其中添加状态/清空检查id元素!id.Elementid&!String.isNullorWhiteSpaceId.Elementid。Value@AlexeiLevenkov在大多数情况下,这是不必要的,因为在本例中,当存在父元素moviereview时,它具有完全相同的结构,因此可以假设存在一个具有int值的id。
public int getUniqueID()
{
var idlist = from ids in connectToXML().Descendants("moviereview")
select (int)ids.Element("id");
int biggestId = idlist.DefaultIfEmpty().Max();
return biggestId + 1;
}