在我的xml中,每个记录标记都有两个元素,如id1
和id2
我想加载所有记录的id1
和id2
,并将id1
中的所有item1
和id2
中的所有item2
保存在元组列表
我想要这样的东西
var tuples = doc.Root.Descendants("record").Select(p => new
Tuple<int,int>(p.Element("id1").Value,p.Element("id2").Value));
但这仅适用于元组的一个对象,但我想保存 整数元组列表
答案 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>>
。