2011-06-13 116 views
5

我需要将一个字符串数组传递给SQL Server 2005,因此我编写了一个存储过程,该过程应用了XML参数并正确处理它。我的问题是,是否有任何简单的方法可以直接在C#中将string[]序列化为(不是磁盘中的文件)的XML字符串,而无需使用XDocument, XAttribute等编码我自己的方法。将System.Array序列化为XML字符串

:我希望能够像new string[] { "a", "b", "c" }改造的东西弄成

<StringList><String>a</String><String>b</String><String>c</String></StringList> 

元素的标签名称是不重要的。

回答

14

你可以尝试XmlSerializer如果你真的想避免编写自己的代码,但与LINQ做它的XML是非常简单的:

XElement element = new XElement("StringList", 
           values.Select(x => new XElement("String", x))); 
string text = element.ToString(); 
+0

你可以用这种方法给的名字数组中的元素也是如此?例如'values.Select(x => new XElement(array [0,0],array [0,1])));' – 2015-02-03 10:31:15

+1

@ChrisHall:当然,如果'array'是'string [,]'...它只是一个构造函数调用,所以它真的不关心参数来自哪里。 – 2015-02-03 10:39:23

+0

太棒了!我不是C#的100%,只是开始了一个初级角色。我可以厚脸皮地问问它是如何完成的:) – 2015-02-03 10:46:09