现在,我正在阅读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”),该怎么办?我可以继续使用这种方法,还是应该去寻找别的东西?
答案 0 :(得分:2)
Kai是正确的,但是我想指出另一种选择是使用dynamic而不是对象,如果你的c#编译器支持它。然后,您可以访问属性,这些将在运行时解析。但如上所述,在您的场景中,您最有可能更好地定义新类型。
答案 1 :(得分:1)
还有一个关于脏黑客的SO问题,它允许您在方法之外访问匿名类型,但没有人会建议使用它:
Accessing C# Anonymous Type Objects
如果您需要访问方法之外的特定变量,那么定义新类型而不是使用匿名变量可能更好。