反序列化Guid c#列表

时间:2015-06-18 09:36:42

标签: c# list serialization guid

有人可以帮我将这个xml文件反序列化为Guid列表吗?

<?xml version="1.0" encoding="UTF-8"?>
<content>
    <0>124179e5-82b9-c551-1e88-515ec3bbe4e3</0>
    <1>5c8246d3-5b9f-16bb-89dc-515ec4674170</1>
    <2>9d7f4701-81e3-3c90-c743-515ec9580852</2>
    <3>ea8d97bd-243b-b917-bc15-51764c2b2f34</3>
</content>

提前致谢。

2 个答案:

答案 0 :(得分:1)

您的文件不是有效的XML文件。根据{{​​3}},节点标识符不能以数字开头。不尊重实际的节点标识符,他阅读列表的常用方法是:

List<Guid> guids = new List<Guid>();
XmlDocument doc = new XmlDocument();
doc.Load(@"guids.xml");
foreach(XmlNode guidNode in doc["content"].ChildNodes) {
    guids.Add(Guid.Parse(guidNode.Name));
}

答案 1 :(得分:0)

在这里使用xml会使事情变得更加复杂。我建议按如下方式重构您的文件:

<强> guids.txt:

124179e5-82b9-c551-1e88-515ec3bbe4e3
5c8246d3-5b9f-16bb-89dc-515ec4674170
9d7f4701-81e3-3c90-c743-515ec9580852
ea8d97bd-243b-b917-bc15-51764c2b2f34

代码(C#):

List<Guid> guids = File.ReadAllLines(@"guids.txt").Select(l => Guid.Parse(l)).ToList();