LINQ to XMLを使用して属性ごとにXML要素を見つけるにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/606817

  •  03-07-2019
  •  | 
  •  

質問

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()を使用する方法があることは知っていますが、それを使用するためにクエリを書き換える方法がわかりません。誰か良いアドバイスがありますか?ありがとう。

役に立ちましたか?

解決 2

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

groupCollectionXml.Elements("Group").Any(
  vw => string.Equals(vw.Attribute("Name").Value, groupName, StringComparison.OrdinalIgnoreCase)
);

他のヒント

groupCollectionXml.Elements("Group").Any(
    vw=>(string)vw.Attribute("Name") == groupName
  );
groupCollectionXml.
    Elements("Group").
    Where(item=>String.
        Equals(item.Attribute("Name"), groupName, OrdinalIgnoreCase)).
    Any();

すべてを1行にしたい場合

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top