2011-06-13 107 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