Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.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#Linq到Xml_C#_Linq To Xml - Fatal编程技术网

简单C#Linq到Xml

简单C#Linq到Xml,c#,linq-to-xml,C#,Linq To Xml,我希望能够使用C#Linq将以下格式输出到Xml <Genres> <Genre Value="Rock" /> <Genre Value="Metal" /> </Genres> 谢谢\m/\m/ public XmlElement CreateGenresXml(string[] args) { var el = new XElement("Genres"); el.Add(args.Where

我希望能够使用C#Linq将以下格式输出到Xml

<Genres>
<Genre Value="Rock" />
<Genre Value="Metal" />
</Genres>
谢谢\m/\m/

    public XmlElement CreateGenresXml(string[] args)
    {
        var el = new XElement("Genres");
        el.Add(args.Where(x => !string.IsNullOrWhiteSpace(x)).Select(arg => new XElement("Genre", new XAttribute("Value", arg))));
        var doc = new XmlDocument();
        using (var reader = el.CreateReader())
        {
            doc.Load(reader);
        }
        return doc.DocumentElement;
    }

从:

Stackoverflow借用到XmlElement的转换不提供代码编写服务。如果您有问题,请随时提问。非常欢迎。我认为LINQ不太适合这个任务,因为你有很多独立的参数。为什么不直接使用一些
if
来组合元素呢?如果你想使用Linq,那么就使用
XElement
而不是
XmlElement
。我知道如何通过其他方式完成任务,但想签出Linq to Xml。谢谢您!我会将签名更改为
CreateGenresXml(params string[]args)
,这样您可以像这样调用它
CreateGenresXml(“arg1”、“arg2”、…)
    public XmlElement CreateGenresXml(string[] args)
    {
        var el = new XElement("Genres");
        el.Add(args.Where(x => !string.IsNullOrWhiteSpace(x)).Select(arg => new XElement("Genre", new XAttribute("Value", arg))));
        var doc = new XmlDocument();
        using (var reader = el.CreateReader())
        {
            doc.Load(reader);
        }
        return doc.DocumentElement;
    }