对linq这个查询感到困惑

本文关键字:查询 linq | 更新日期: 2024-09-23 10:06:53

我有一个这样的xml文件。

<Accounts>
    <Account Id="">
        <UserName/>
        <Password/>
        <AddingDate/>
        <AccountType/>
    </Account>
</Accounts>

我想做的是,如果第一个元素的attaribute值不为空,则返回true或false

private bool IsListEmpty(){    
    XDocument doc = XDocument.Load("UserAccounts.xml");
    var c = from p in doc.Descendants("Account") 
            where p.Element("Id").Value == "" 
            select p.Value;
    if(c==null)return......
}

但我被卡住了。如何进行

对linq这个查询感到困惑

只需在LINQ上使用FirstOrDefault(),然后检查Id属性是否为空:

var account = doc.Descendants("Account").FirstOrDefault();
return account != null &&  !string.IsNullOrEmpty(account.Attribute("Id").Value)

不确定我是否理解正确,但我认为是这样。任何人都会成功。

XElement xelement = XElement.Load("UserAccounts.xml");
return xelement.Elements("Account").Where(x => string.IsNullOrEmpty((string)x.Element("Id"))).Any();

如果发现一个元素为"

,则Any将返回true