Je vais avoir un fichier xml comme:Comment lire le fichier XML à un dictionnaire <String, Liste <String>> avec des chaînes vides pour des éléments nuls
<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>
et un dictionnaire comme:
Dictionary<String, List<String>>MyDict = new Dictioanary<String, List<String>>();
et je lis le fichier XML à MyDict
est comme:
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());
maintenant le dictionnaire c j'ai:
"A" { "A1" }
"B" { "B1", "B2" }
"C" { "C1", "C2", "C3" }
mais mon problème est que j'ai besoin de toute la liste avec le même nombre. La chaîne vide doit être ajoutée pour une entrée nulle, le résultat attendu est donc:
"A" { "A1", "", "" }
"B" { "B1", "B2", "" }
"C" { "C1", "C2", "C3" }
Comment puis-je modifier ma requête LINQ?
S'il vous plaît aidez-moi à faire cela en utilisant LINQ.
Merci d'avance.
(+1). Pourriez-vous s'il vous plaît suggérer une méthode dans LINQ (au lieu de 'Foreach') –
@Pramodh: Est-ce que ça va? – Ani
oui ... Maintenant, j'utilise comme int i = XDoc.Descendants ("RowDetails"). Max (X => Convert.ToInt32 (X.Attribute ("ColumnSize"). Valeur)); ' –