我有一个 xml 文件,例如:
<root>
<RowDetails RowName="A" ColumnSize="1">
<ColumnDetails ColumnName="A1" />
</RowDetails>
<RowDetails RowName="B" ColumnSize="2">
<ColumnDetails ColumnName="B1" />
<ColumnDetails ColumnName="B2" />
</RowDetails>
<RowDetails RowName="C" ColumnSize="3">
<ColumnDetails ColumnName="C1" />
<ColumnDetails ColumnName="C2" />
<ColumnDetails ColumnName="C3" />
</RowDetails>
</root>
和一个字典,如:
Dictionary<String, List<String>>MyDict = new Dictioanary<String, List<String>>();
我正在读取 XML 文件MyDict
就好像:
XDocument XDoc = XDocument.Load(Application.StartupPath + @"\foo.xml");
MyDict = XDoc.Descendants("RowDetails").ToDictionary(X => X.Attribute("RowName").Value,
X => X.Descendants("ColumnDetails")
.Select(Y => Y.Attribute("ColumnName").Value).ToList());
现在词典将包含:
"A" { "A1" }
"B" { "B1", "B2" }
"C" { "C1", "C2", "C3" }
但我的问题是我需要所有具有相同计数的列表。应为空条目添加空字符串,因此预期结果是:
"A" { "A1", "", "" }
"B" { "B1", "B2", "" }
"C" { "C1", "C2", "C3" }
如何修改 LINQ 查询?
请帮助我使用 LINQ 来完成此操作。
提前致谢。