LINQ:特定の名前以外の名前空間で属性を取得する
-
08-07-2019 - |
質問
特定のローカル名と名前空間を持つ要素から単一の特定の属性を取得できるようにする必要があります(XMPPに精通している場合、その理由は理解できます)。独自の(列挙子または単一選択)拡張メソッドを作成する以外に、アイデアはありますか?
次のものがありますが、まったく好きではありません:
XAttribute from = (from c in elem.Attributes()
where c.Name.LocalName == "from"
select c).FirstOrDefault<XAttribute>();
XAttribute to = (from c in elem.Attributes()
where c.Name.LocalName == "to"
select c).FirstOrDefault<XAttribute>();
編集:次のようなものが欲しい:
string val = (string)elem.Attribute("{*}to");
解決策:
XAttribute from = elem.Attributes()
.FirstOrDefault(a => a.Name.LocalName == "from");
XAttribute to = elem.Attributes()
.FirstOrDefault(a => a.Name.LocalName == "to");
解決
構文が気に入らない場合は、これを使用できます;
elem.Attributes().FirstOrDefault(a=>a.Name.LocalName == "from");
所属していません StackOverflow