如何反序列化列表列表到列表

时间:2012-05-12 01:18:15

标签: c# xml-serialization

请告诉我,如何在XmlSerializer中反序列化这个

<Root>
   <Ship KindID=0>
      <Ship0 Name='A' />
      <Ship1 Name='B' />
      <Ship2 Name='C' />
   </Ship>
   <Ship KindID=1>
      <Ship3 Name='AA' />
      <Ship4 Name='BB' />
      <Ship4 Name='cC' />
   </Ship>
</Root>

public class Ships {
   public List<Ship> Ships {get; set;}
}
public class Ship {
   public string Name {get;set;}
   public int KindID {get;set;}
}

我希望无需导航所有xml路径手册即可反序列化。只需执行XmlSerializer.Deserialize(mem,obj)

由于

1 个答案:

答案 0 :(得分:3)

你可以反序列化这样的东西。

var reader = new StreamReader("Path of the xml");
var shipCollection = (List<Ship>)serializer.Deserialize(reader);

收藏后,您可以使用Linq

var shipNameCollection =  shipCollection.Where( t=> t.Name != null).ToList();

您将拥有所有船只的名单