将xml中的所有值加载到元组列表中

时间:2017-11-10 15:28:10

标签: c# xml linq

在我的xml中,每个记录标记都有两个元素,如id1id2

我想加载所有记录的id1id2,并将id1中的所有item1id2中的所有item2保存在元组列表

我想要这样的东西

var tuples = doc.Root.Descendants("record").Select(p => new 
Tuple<int,int>(p.Element("id1").Value,p.Element("id2").Value));

但这仅适用于元组的一个对象,但我想保存 整数元组列表

1 个答案:

答案 0 :(得分:0)

假设您有以下XML:

var xmlStr = "<records><record><id1>1</id1><id2>1</id2></record><record><id1>1</id1><id2>2</id2></record><record><id1>3</id1><id2>3</id2></record></records>";

您发布的代码应该可以正常使用,唯一缺少的是您不会将.Value字符串解析为int

XDocument xDoc = XDocument.Parse(xmlStr);
var tuples = xDoc.Root.Descendants("record").Select(x => new Tuple<int, int>(int.Parse(x.Element("id1").Value), int.Parse(x.Element("id2").Value))).ToList();

正如我在评论.ToList()中所建议的那样,制作List<Tuple<int, int>>代替IEnumerable<Tuple<int, int>>