Je veux créer une liste à partir d'un fichier xml où seules les valeurs entre deux lettres sont affichées. Par exemple, affichez uniquement les enregistrements correspondants dans lesquels le premier caractère du titre est compris entre «A» et «E».Linq sélectionner une plage entre les lettres, par ex. a-e
Ma première approche de base est
where item.Element("title").Value >= "A" && item.Element("title").Value < "E"
Bien sûr, cela ne fonctionne pas comme ces opérateurs ne peuvent pas être appliqués aux chaînes. J'ai essayé d'utiliser string.compare mais sans chance.
Quelqu'un peut-il me donner un exemple sur la façon d'obtenir cette requête?
acclamations, Terry
Mise à jour: Voici le code pour lire le xml.
var simpleListSource = (from item in doc.Descendants("item")
where item.Element("title").Value[0] >= 'A' && item.Element("title").Value[0] < 'E'
orderby item.Element("title").Value
select new
{
title = item.Element("title").Value,
description = item.Element("description").Value,
image = item.Element("image").Value,
type = item.Element("type").Value,
imagelink = item.Element("imagelink").Value
}).ToList();
rptGetItems.DataSource = simpleListSource;
rptGetItems.DataBind();
Et le xml ...
<item>
<title>A test</title>
<titlelong>A</titlelong>
<type>test</type>
<description>
Some description
</description>
<image>includes/images/test.jpg</image>
<imagelink>http://somesite.com</imagelink>
</item>
<item>
<title>E test2</title>
<titlelong>E</titlelong>
<type>test</type>
<description>
Another sample
</description>
<image>includes/images/test.jpg</image>
<imagelink>http://somesite.com</imagelink>
</item>
Salut Bruno, a essayé de vos deux approches, il n » ai pas t travail. Aucun résultat n'est affiché J'ai essayé de changer les entrées dans le xml à un seul caractère, même résultat. Des indices? –
@Terry, le problème peut ne pas être lié à cela. Pouvez-vous nous montrer plus de code? Juste un simple extrait de ce que vous faites. –
Salut Bruno, je l'ai mis à jour avec la source ... merci ... –