是的,可以将XML反序列化为List <T>。在C#中,可以使用LINQ to XML库来实现这个功能。以下是一个简单的示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
public class Program
{
public static void Main()
{
string xml = @"<items>
<item>
<name>Item 1</name>
<value>10</value>
</item>
<item>
<name>Item 2</name>
<value>20</value>
</item>
</items>";
List<Item> items = DeserializeXml<List<Item>>(xml);
foreach (Item item in items)
{
Console.WriteLine($"Name: {item.Name}, Value: {item.Value}");
}
}
public static T DeserializeXml<T>(string xml)
{
XElement element = XElement.Parse(xml);
T result = element.Descendants().Where(e => e.Name == "item").Select(e => new Item
{
Name = e.Element("name").Value,
Value = int.Parse(e.Element("value").Value)
}).ToList<T>();
return result;
}
}
public class Item
{
public string Name { get; set; }
public int Value { get; set; }
}
在这个示例中,我们首先定义了一个名为Item
的类,用于表示XML中的每个项目。然后,我们定义了一个名为DeserializeXml
的泛型方法,用于将XML字符串反序列化为List <T>。在Main
方法中,我们使用DeserializeXml
方法将XML字符串转换为List <Item>,并遍历结果以输出每个项目的名称和值。
这个示例使用了LINQ to XML库,它是C#中处理XML的一种高效方式。如果您需要处理更复杂的XML结构,可以使用LINQ to XML提供的更多功能。
领取专属 10元无门槛券
手把手带您无忧上云