LINQ: الحصول على السمة مع أي مساحة الاسم ولكن اسم محدد

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

  •  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");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top