3

LINQ to XML を学習していて、特定の属性を持つ要素の存在を見つける必要があります。現時点で私は使用しています:

XElement groupCollectionXml = XElement.Parse(groupCollection.Xml);
IEnumerable<XElement> groupFind =
    from vw in groupCollectionXml.Elements("Group")
    where (string) vw.Attribute("Name") == groupName
    select vw;

if (groupFind.Count() == 0)
    return false;
else
    return true;

おそらくAny()を使用して、これを行うより簡潔な方法があることは知っていますが、それを使用するためにクエリを書き直す方法がわかりません。誰か良いアドバイスはありますか?ありがとう。

4

3 に答える 3

6
groupCollectionXml.Elements("Group").Any(
    vw=>(string)vw.Attribute("Name") == groupName
  );
于 2009-03-03T15:36:23.850 に答える
2
groupCollectionXml.
    Elements("Group").
    Where(item=>String.
        Equals(item.Attribute("Name"), groupName, OrdinalIgnoreCase)).
    Any();

すべてを 1 行にまとめたい場合

于 2009-03-03T15:28:11.170 に答える
2

他の2つの回答に感謝します。私はある簡潔さと別の正確さを組み合わせて、かき混ぜて、うまく機能するこれを思いつきました:

groupCollectionXml.Elements("Group").Any(
  vw => string.Equals(vw.Attribute("Name").Value, groupName, StringComparison.OrdinalIgnoreCase)
);
于 2009-03-30T10:57:38.160 に答える