Linq 序列不包含任何元素

本文关键字:元素 何元素 包含任 Linq | 更新日期: 2023-09-27 18:37:27

我有一个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

如何正确检查现有元素?

Linq 序列不包含任何元素

.Elements("Monkey")返回一个不为 null 的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;