C# 使用匿名类型写入XML?
现在,我正在阅读一个XML文档,并将其主要元素传递给下面的方法。然后,此方法返回IEnumerable中的相关元素,用于更新DataGridViewC# 使用匿名类型写入XML?,c#,linq,linq-to-xml,C#,Linq,Linq To Xml,现在,我正在阅读一个XML文档,并将其主要元素传递给下面的方法。然后,此方法返回IEnumerable中的相关元素,用于更新DataGridView private IEnumerable<object> readRelease(IEnumerable<XElement> release) { return ( from r in release select new { Release =
private IEnumerable<object> readRelease(IEnumerable<XElement> release)
{
return (
from r in release
select new
{
Release = r.Attribute("id").Value
//etc.
});
}
private IEnumerable readRelease(IEnumerable release)
{
返回(
从r中释放
选择新的
{
释放=r.属性(“id”).值
//等等。
});
}
对于DataGridView,该方法工作得很好,但是如果我想将这些元素写入XML文件,或者更广泛地说,只想访问特定变量(例如“Release”),该怎么办。然后我还能使用这个方法吗,还是应该使用其他方法呢?还有一个关于肮脏黑客的问题,它允许你访问方法之外的匿名类型,但没有人会建议使用它:
如果您需要访问方法之外的特定变量,最好定义一个新类型,而不是使用匿名类型。Kai是正确的,但是我想指出,如果您的c#编译器支持,另一个选项是使用而不是object。然后您可以访问属性,这些属性将在运行时解析。但如前所述,在您的场景中,最好定义一个新类型。由于某些原因,在这种情况下使用dynamic时,我总是感觉不舒服。可能的重复