如何在 XxmlElement 而不是 C# 中的 XElement 上运行 linq
Posted
技术标签:
【中文标题】如何在 XxmlElement 而不是 C# 中的 XElement 上运行 linq【英文标题】:how to run linq on XxmlElement rather than XElement in C# 【发布时间】:2014-01-17 10:42:09 【问题描述】:如何在C#
和linq
中获取XmlElement而不是XElement的属性?
public string test (XmlElement element)
var enumAttr = from attr in element.Attributes select attr;
foreach (var data in enumAttr)
// TO DO
报错,
找不到源类型“System.Xml.XmlAttributeCollection”的查询模式的实现。未找到“选择”。考虑明确指定范围变量“attr”的类型
【问题讨论】:
“它给出的错误”是永远足够的信息。请包含确切的错误消息。 找不到源类型“System.Xml.XmlAttributeCollection”的查询模式的实现。未找到“选择”。考虑明确指定范围变量“attr”的类型 请将其编辑到问题中,并在问下一个问题之前阅读tinyurl.com/so-list。提供所有相关信息很重要。 【参考方案1】:这是因为XmlAttributeCollection
只实现了IEnumerable
而不是IEnumerable<T>
。您可以将查询表达式更改为:
var enumAttr = from XmlAttribute attr in element.Attributes select attr;
相当于:
var enumAttr = from attr in element.Attributes.Cast<XmlAttribute>() select attr;
但无论如何,你并没有真正用 LINQ 做任何事情 - 你可以使用:
foreach (XmlAttribute data in enumAttr.Attributes)
【讨论】:
以上是关于如何在 XxmlElement 而不是 C# 中的 XElement 上运行 linq的主要内容,如果未能解决你的问题,请参考以下文章
如何发送带有 HTML 标签的电子邮件,而不是 C# 中的 HTML 纯文本
如何忽略单元格输入中的制表键而不是制表符?数据网格视图 C#