J'essaye d'améliorer du code et je ne peux pas penser à une meilleure manière de faire ce qu'elle fait actuellement. essentiellement i boucle dehors pour le nombre d'éléments divisés par le nombre que je veux sélectionner, puis dans cette boucle je sélectionne l'élément basé sur une boucle interne du nombre d'éléments dont j'ai besoin pour créer un seul élément modifiant cela par la valeur outerloop, Ainsi, dans l'exemple ci-dessous, la boucle externe boucle deux fois (0,1) et la boucle interne deux fois par boucle externe (0,1 puis 2,3).sélectionner et ignorer des éléments
Quelqu'un peut-il voir une façon plus lisible de le faire ou un moyen de le faire sans faire les deux boucles?
Espérons que cela a du sens. Merci.
Tenir compte XML de
string xml = @"
<MainItem>
<Select>2</Select>
<ItemArray>
<Item>One</Item>
<Item>Two</Item>
<Item>Three</Item>
<Item>Four</Item>
</ItemArray>
</MainItem>";
var doc = XDocument.Parse(xml);
Voici la valeur Select me dit combien d'éléments créent un « objet » dans ce cas 2 articles sont un objet (cela peut être un nombre, mais le nombre d'articles seront toujours autorise le nombre correct d'objets) actuellement je suis en train de faire somethng comme
List<List<XElement>> items = new List<List<XElement>>();
for(int i = 0;i < (doc.Descendants("Item").Count()/(int)doc.Element("MainItem").Element("Select"));i++)
{
//this is one object
var singleItem = new List<XElement>();
for (int j = 0; j < (int)doc.Element("MainItem").Element("Select"); j++)
{
var item = doc.Descendants("Item").ElementAt(j + (i * (int)doc.Element("MainItem").Element("Select")));
singleItem.Add(item);
}
items.Add(singleItem);
}
nous terminons avec une liste de liste avec 2 éléments, chaque élément peut contenir 2 XElements chacun (un et deux et trois et quatre ensemble) donc ..
ItemOne
One
Two
ItemTwo
Three
Four
Vous devriez probablement formater votre XML et montrer un échantillon de la sortie XML que vous attendez. –
@Winston Smith fait comme demandé, merci pour l'entrée – Pharabus
Combien de fois allez-vous recalculer cet '' (int) doc.Element ("MainItem"). Element ("Select") '? –