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