【发布时间】:2014-06-26 01:01:04
【问题描述】:
我有以下 LinqToXml 查询:
var linqDoc = XDocument.Parse(xml);
var result = linqDoc.Descendants()
.GroupBy(elem => elem.Name)
.Select(group => new
{
TagName = group.Key.ToString(),
Values = group.Attributes("Id")
.Select(attr => attr.Value).ToList()
});
是否有可能以某种方式使我的匿名类型的字段成为变量值,以便它可以是(不工作):
var linqDoc = XDocument.Parse(xml);
var result = linqDoc.Descendants()
.GroupBy(elem => elem.Name)
.Select(group => new
{
group.Key.ToString() = group.Attributes("Id")
.Select(attr => attr.Value).ToList()
});
【问题讨论】:
-
您想动态命名该类型的字段吗?假设
a是该匿名类型的一个实例。如果您不知道其名称,您现在如何获取该字段的值? -
否*。即使有可能,您将如何访问该字段?
-
考虑改用
Dictionary;使用ToDictionary-方法很容易创建。 -
你可以使用 ExpandoObject 代替匿名类吗?
-
@voo 那么你有一个 XY 问题。询问如何将这些在编译时没有静态模式的数据序列化为 JSON。这样做的适当方式几乎肯定不会涉及匿名类型。
标签: c# linq anonymous-types