Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果XML文件为空,则无法返回int_C#_Asp.net_Xml - Fatal编程技术网

C# 如果XML文件为空,则无法返回int

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

尝试为保存在XML文件中的内容设置唯一ID。 现在这是我的代码:

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;     
}