2

我需要能够从具有特定本地名称但具有任何命名空间的元素中获取单个特定属性(如果您熟悉 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");
4

1 回答 1

4

如果你不喜欢这个语法,你可以使用这个;

elem.Attributes().FirstOrDefault(a=>a.Name.LocalName == "from");
于 2008-11-17T09:01:46.513 回答