CSharp - 在Linq中,C# xml> 字典 <string, Tuple<string,string,string>>

  显示原文与译文双语对照的内容
0 0

我有这个XML文档


<?xml version="1.0" encoding="utf-8"?>
<Tag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <data ID="1" Tag1="A" Tag2="123" Tag3="C"/>
 <data ID="2" Tag1="AB" Tag2="12C3" Tag3="D"/>
</Tag>

我希望将文档转换为字典类型 <string, Tuple<string,string,string>>

所以基本上是 ID -> Tag1,Tag2,Tag3

我知道有很多 do Key像这样的> 值:


var configDictionary = xdoc.Descendants("data").ToDictionary(
 datum => datum.Attribute("ID").Value,
 datum => datum.Attribute("value").Value);

但是我需要有 3个字符串的值。

时间: 原作者:

0 0

这是相当简单的。所有你丢失的都是使用 Tuple.Create 声明元组:


var configDictionary = xdoc.Descendants("data")
. ToDictionary(
 datum => datum.Attribute("ID").Value,
 datum => Tuple.Create(datum.Attribute("Tag1").Value,
 datum.Attribute("Tag2").Value,
 datum.Attribute("Tag3").Value));

注意这没有验证属性确实存在的验证,这将需要添加。

原作者:
...