【发布时间】:2011-07-22 16:19:55
【问题描述】:
我正在使用以下 Linq-to-XML 将一些 XML 结构加载到我的数据结构中。
// Load all the definitions
var definitions = doc.Descendants(Constants.ScriptNode)
.Select(x => new TcScriptDefinition
{
Application = x.Attribute(Constants.AppAttribute).Value,
CaseName = x.Attribute(Constants.CaseAttribute).Value,
ActionType = x.Attribute(Constants.ActionAttribute).Value,
ScriptUnit = x.Attribute(Constants.UnitAttribute).Value,
ScriptMethod = x.Attribute(Constants.MethodAttribute).Value,
Parameters = x.Descendants(Constants.ParamNode)
.Select(param => new TcScriptParameter
{
Code = param.Attribute(Constants.ParamCodeAttribute).Value,
ParameterNumber = Convert.ToInt32(param.Attribute(Constants.ParamOrderAttribute).Value),
DisplayString = param.Attribute(Constants.ParamDisplayAttribute).Value
})
.ToList()
})
.ToList();
问题在于TcScriptDefinition.Parameters 被定义为HashSet<TcScriptParameter>,因此ToList() 无法编译,因为它返回List<T>。
如何通过 Linq 将我的 xml 加载到 HashSet<T> 中?
【问题讨论】:
标签: linq linq-to-xml hashset