C#Linq to XML检查元素是否存在

Goo*_*ber 25 c# xml linq linq-to-xml

我有一个XML文档如下:

<Database>
 <SMS>
   <Number>"+447528349828"</Number> 
   <Date>"09/06/24</Date> 
   <Time>13:35:01"</Time> 
   <Message>"Stop"</Message> 
 </SMS>
 <SMS>
   <Number>"+447528349828"</Number> 
   <Date>"09/06/24</Date> 
   <Time>13:35:01"</Time> 
   <Message>"Stop"</Message> 
 </SMS>
</Database>
Run Code Online (Sandbox Code Playgroud)

我正在尝试检查文档中是否存在父SMS节点的number子节点(出于验证目的,以避免插入重复数据).

关于潜在解决方案的任何建议?

编辑:元素将与输入字符串进行比较.例如if(inputNumber == xmlDocNumber){//不插入新元素}

Jon*_*eet 43

我建议使用Count()- 使用略有不同Any().优点是Any()可以在任何匹配时立即停止:

var smsWithNoNumber = main.Descendants("SMS")
                          .Where(x => !x.Elements("Number").Any());
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它不会有太大的可能性,但是如果Count()可能需要计算一百万次点击只是为了告诉你至少有一次,这是一个有用的技巧.我会说这也是你所说的更明确的指标.