Linq to XML -I可以使用listbox但不能使用List<>

时间:2010-11-17 18:54:31

标签: c# linq linq-to-xml

以下是我如何从ListBox

形成我的xml
   new XElement("City", lstCities.Items
                            .Cast<ListItem>()
                            .Select(x => new XElement("TBL_Cities", 
                                new XElement ("CityName",x.Text),
                                new XElement("TripID",TripID)))

现在也许是因为它接近一天结束,但我无法弄清楚如何使用List&lt;&gt;我有(它的列表lstImages)我基本上想把字节文件写到xml,就像城市一样(因为列表中有1-3个图像)

以下是无效的部分

new XElement("TBL_Photo",lstImages
                                .Cast<byte>()
                                .Select(x => new XElement("TBL_Photo", 
                                    new XElement ("Photo",x),
                                    new XElement("TripID",TripID))))

2 个答案:

答案 0 :(得分:1)

这将取决于listImages的定义方式,但假设它是List<List<byte>>,那么只需

  new XElement("TBL_Photo",lstImages 
                //.Cast<byte>()  Not needed
                .Select(x => new XElement("TBL_Photo",  
                    new XElement ("Photo",x), 
                    new XElement("TripID",TripID)))) 

这假设XElement允许List作为参数。

你不需要演员。您只需要它,因为lstCities.Items是一个ListItemCollection,它没有实现IEnumerable<ListItem>

答案 1 :(得分:1)

据我所知,您对List<byte>的代码大多是正确的。您对.Cast进行了不必要的调用(但不会破坏任何内容)。你的主要问题似乎是一个太多的结束括号,除非有更多的代码你没有向我们展示。

new XElement("TBL_Photo",
     lstImages.Select(x => new XElement("TBL_Photo",  
                  new XElement ("Photo",x), 
                  new XElement("TripID",TripID)))