Linq 序列不包含任何元素
Linq Sequence contains no elements
我有一个 xdocument。
XDocument xd = new XDocument();
var xdocument = XDocument.Parse(@"<Values>
<Required>
<DisplayItem>rbProvided</DisplayItem>
<MessageId>38</MessageId>
</Required>
</Values>");
现在,我正在尝试检查其中是否存在某个元素,如果不存在,我需要添加它。这是我正在尝试的代码
if(xd.Descendants().Elements("Monkey") != null)
{ Do this }
它一直告诉我:
Sequence Contains No Elements
如何正确检查现有元素?
.Elements("Monkey")
returns 一个 IEnumerable
不为空(因此您的检查失败),但不包含任何元素。
你应该做的
if (xdocument.Descendants.Elements("Monkey").Any())
检查特定元素,您可以编码如下:
XDocument xd = new XDocument();
var xdocument = XDocument.Parse(@"<Values>
<Required>
<DisplayItem>rbProvided</DisplayItem>
<MessageId>38</MessageId>
</Required>
</Values>");
if(xdocument.Descendants("DisplayItem").Any())
Console.WriteLine("Whatever...");
不要忘记包括:using System.Xml.Linq;
& using System.Linq;
我有一个 xdocument。
XDocument xd = new XDocument();
var xdocument = XDocument.Parse(@"<Values>
<Required>
<DisplayItem>rbProvided</DisplayItem>
<MessageId>38</MessageId>
</Required>
</Values>");
现在,我正在尝试检查其中是否存在某个元素,如果不存在,我需要添加它。这是我正在尝试的代码
if(xd.Descendants().Elements("Monkey") != null)
{ Do this }
它一直告诉我:
Sequence Contains No Elements
如何正确检查现有元素?
.Elements("Monkey")
returns 一个 IEnumerable
不为空(因此您的检查失败),但不包含任何元素。
你应该做的
if (xdocument.Descendants.Elements("Monkey").Any())
检查特定元素,您可以编码如下:
XDocument xd = new XDocument();
var xdocument = XDocument.Parse(@"<Values>
<Required>
<DisplayItem>rbProvided</DisplayItem>
<MessageId>38</MessageId>
</Required>
</Values>");
if(xdocument.Descendants("DisplayItem").Any())
Console.WriteLine("Whatever...");
不要忘记包括:using System.Xml.Linq;
& using System.Linq;