J'ai rempli une liste triée de dates (stockées sous forme de chaînes au format jj/mm/aaaa) à partir d'un fichier xml utilisant xpath. Toutefois, lorsque j'interroge la liste pour voir si une date existe dans la liste, j'obtiens toujours un résultat négatif (c'est-à-dire n'existe pas) même si j'ai codé en dur la chaîne de requête pour correspondre à une date dans la liste.BinarySearch n'ayant pas de résultats attendus
Cependant, lorsque vous effectuez une comparaison de chaînes sur l'index qui contient la chaîne interrogée, j'obtiens 0 indiquant que les chaînes sont identiques.
Quelles peuvent causer ce comportement étrange?
Comme demandé ici est le code
Vacances est peuplée par:
while (iter.MoveNext())
{
XPathNavigator nav2 = iter.Current;
XPathNodeIterator iter2 = nav2.SelectDescendants("date", "", false);
while (iter2.MoveNext())
{
date = iter2.Current.ToString();
holidays.Add(date);
}
}
return holidays;
Et la recherche est:
holidays = list.getHolidays();
if(holidays.BinarySearch(DateTime.Now.ToShortDateString()) > 0)
Avec le code XML suivant retour:
<date>01/01/2009</date>
<date>25/02/2009</date>
<date>10/04/2009</date>
<date>13/04/2009</date>
<date>04/05/2009</date>
<date>25/05/2009</date>
<date>31/08/2009</date>
<date>25/12/2009</date>
<date>28/12/2009</date>
Pouvez-vous poster un exemple de code? – LukeH
Quelle est votre implémentation actuelle? – Richard
vérifiez votre ordre de tri? –