Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用匿名类型写入XML?_C#_Linq_Linq To Xml - Fatal编程技术网

C# 使用匿名类型写入XML?

C# 使用匿名类型写入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 =

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

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时,我总是感觉不舒服。可能的重复