C# XML:如果XmlNodeList.Count>;=1,XmlNodeList.Item(#)是否会为空?

C# XML:如果XmlNodeList.Count>;=1,XmlNodeList.Item(#)是否会为空?,c#,xml,C#,Xml,我试图弄清楚,如果我有一个XmlNodeList对象,并且Count大于或等于1,那么它的“Item”对象是否会为null 如果是,我如何在调用其“HasChildNode”属性之前检查它是否为null if (XmlNodeList.Item(0).HasChildNodes) 谢谢,在您给出的示例中,任何项目都不会为null,但通常您会以不同的方式访问这些项目,或者直接通过索引(如果您需要索引): 回答(与事实相反?)的“如果是”问题: if (XmlNodeList.Item(0) !=

我试图弄清楚,如果我有一个XmlNodeList对象,并且Count大于或等于1,那么它的“Item”对象是否会为null

如果是,我如何在调用其“HasChildNode”属性之前检查它是否为null

if (XmlNodeList.Item(0).HasChildNodes)

谢谢,

在您给出的示例中,任何项目都不会为
null
,但通常您会以不同的方式访问这些项目,或者直接通过索引(如果您需要索引):

回答(与事实相反?)的“如果是”问题:

if (XmlNodeList.Item(0) != null && XmlNodeList.Item(0).HasChildNodes)

即使XmlNodeList中没有节点,它也不为null!您可以尝试“计数””方法来检查:


XmlNodeList只是XmlNode的集合。通常,它可以包含空项。
XmlNodeList
是一个抽象类-afaik只选择
XmlNode
的方法返回实例,所有这些都保证集合中没有节点是
null
。我想您可以创建自己的类,该类是从
XmlNodeList
派生的,但我认为这样想不太实际,我也从未见过确实检查
null
的示例代码。
XmlNodeList nodes= ..
foreach (XmlNode node in nodes)
{
   //do something with node
}
if (XmlNodeList.Item(0) != null && XmlNodeList.Item(0).HasChildNodes)
XmlNodeList TheXmlNodeList = GetMenuItems();
if (TheXmlNodeList.Count > 0)
{
    //has node
}
else
{
    //do not have node
}