使用匿名类型写入XML?

时间:2012-02-02 23:08:07

标签: c# linq linq-to-xml

现在,我正在阅读XML文档并将其主要元素传递给下面的方法。然后,此方法返回IEnumerable中的相关元素,该元素用于更新DataGridView。

private IEnumerable<object> readRelease(IEnumerable<XElement> release)
{
    return (
        from r in release
        select new
        {
            Release = r.Attribute("id").Value
            //etc.
        });
}

对于DataGridView,这种方法运行良好,但是如果我想将这些元素写入XML文件,或者更广泛地说,只想访问特定变量(例如“Release”),该怎么办?我可以继续使用这种方法,还是应该去寻找别的东西?

2 个答案:

答案 0 :(得分:2)

Kai是正确的,但是我想指出另一种选择是使用dynamic而不是对象,如果你的c#编译器支持它。然后,您可以访问属性,这些将在运行时解析。但如上所述,在您的场景中,您最有可能更好地定义新类型。

答案 1 :(得分:1)

还有一个关于脏黑客的SO问题,它允许您在方法之外访问匿名类型,但没有人会建议使用它:

Accessing C# Anonymous Type Objects

如果您需要访问方法之外的特定变量,那么定义新类型而不是使用匿名变量可能更好。

相关问题