Je dispose d'un fichier xml exemple qui ressemble à ceci:sélection LINQ
<Books>
<Category Genre="Fiction" BookName="book_name" BookPrice="book_price_in_$" />
<Category Genre="Fiction" BookName="book_name" BookPrice="book_price_in_$" />
<Category Genre="NonFiction" BookName="book_name" BookPrice="book_price_in_$" />
<Category Genre="Children" BookName="book_name" BookPrice="book_price_in_$" />
</Books>
Je dois recueillir tous les noms de livres et le prix du livre et de passer à une autre méthode. En ce moment, je reçois tous les noms de livres et le prix du livre séparement en deux différents List<string>
en utilisant la commande suivante:
List<string>BookNameList = root.Elements("Category").Select(x => (string)x.Attribute("BookName")).ToList();
List<string>BookPriceList = root.Elements("Category").Select(x => (string)x.Attribute("BookPrice")).ToList();
créer un fichier texte et envoyer ce retour à la fonction appelante (stroing ces résultats dans un fichier texte est une exigence, le fichier texte a deux champs bookname et bookprice).
Pour écrire dans le fichier texte est utilisez le code suivant:
for(int i = 0; i < BookNameList.Count; i++)
{
//write BookNameList[i] to file
// Write BookPriceList[i] to file
}
Je ne me sens bien en quelque sorte de cette approche. Supposons que, pour une raison quelconque, les deux listes ne soient pas de la même taille. En ce moment je ne prends pas cela en compte et je me sens en utilisant foreach
est beaucoup plus efficace (je me trompe peut-être). Est-il possible de lire les deux entrées dans une structure de données (ayant deux attributs nom et prix) à partir de LINQ? alors je peux facilement parcourir la liste de cette structure de données avec foreach.
J'utilise C# pour la programmation.
Merci,
[Modifier]: Merci à tous pour les réponses super rapide, je choisis la première réponse que je voyais.
Si vous utilisez .NET 4, vous pouvez simplement les mettre dans un Tuple. – R0MANARMY
Yah, cela aurait dû être bookPrice, (copier coller erreur) et j'utilise .Net 3.5 – dsilva