Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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# 如何列出用户及其评论_C#_Xml_Linq - Fatal编程技术网

C# 如何列出用户及其评论

C# 如何列出用户及其评论,c#,xml,linq,C#,Xml,Linq,我很难列出用户的评论。我有一个Sampledata(我需要的所有数据都在这里),我必须使用LINQ并以XML格式打印它,如下所示: 这是SampleData(审查的重要部分): 这是我到目前为止写的: IEnumerable<XElement> xElements = from review in SampleData.Reviews select new XElement(&q

我很难列出用户的评论。我有一个Sampledata(我需要的所有数据都在这里),我必须使用LINQ并以XML格式打印它,如下所示:

这是SampleData(审查的重要部分):

这是我到目前为止写的:

IEnumerable<XElement> xElements =
                from review in SampleData.Reviews
                select
                    new XElement("Benutzer",
                        new XElement("User", new XAttribute("Name", "Barney")),
                 new XElement("Review",  (from review2 in SampleData.Reviews select review2.Comments).ToList().First())
                 );
            var customersXml = new XElement("UserReviews", xElements);
            Console.WriteLine(customersXml);
IEnumerable元素=
来自SampleData.Reviews中的review
选择
新XElement(“Benutzer”,
新XElement(“用户”,新XAttribute(“名称”,“巴尼”)),
新建XElement(“Review”(来自SampleData.Reviews中的review2选择review2.Comments)。ToList().First())
);
var customersXml=新的XElement(“用户评论”,XElement);
Console.WriteLine(customersXml);
这是输出:

问题是有几个输出,而不是一个输出(我只做了第一部分,而不是整个XML输出)。
有没有更好的方法来实现这一点?

在循环审阅之前只创建一次
Benutzer
元素。
按用户名对评论进行分组,将它们合并到一个用户元素下

var element = new XElement(,
    "Benutzer",
    sampleData.Reviews
        .GroupBy(r => r.User.Name)
        .Select(g => new XElement(
            "User", 
            new XAttribute("Name", g.Key),
            g.Select(r => new XElement("Review", r.Comments))
        )
);

在循环审阅之前,仅创建一次
Benutzer
元素。
按用户名对评论进行分组,将它们合并到一个用户元素下

var element = new XElement(,
    "Benutzer",
    sampleData.Reviews
        .GroupBy(r => r.User.Name)
        .Select(g => new XElement(
            "User", 
            new XAttribute("Name", g.Key),
            g.Select(r => new XElement("Review", r.Comments))
        )
);

谢谢你的回答谢谢你的回答