如何反序列化要列出的列表列表

本文关键字:列表 反序列化 | 更新日期: 2023-09-27 18:34:07

请告诉我,如何在 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)

谢谢

如何反序列化要列出的列表列表

你可以反序列化类似的东西。

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();

您将获得所有船只的名称列表