gpt4 book ai didi

c# - BinarySearch 没有预期的结果

转载 作者:行者123 更新时间:2023-11-30 13:43:14 25 4
gpt4 key购买 nike

我使用 xpath 从 xml 文件中填充了一个排序的日期列表(以 dd/mm/yyyy 格式存储为字符串)。

然而,当查询列表以查看列表中是否存在某个日期时,我总是得到否定结果(即不存在),即使我已对查询字符串进行硬编码以匹配列表中的日期。

但是,当对包含查询字符串的索引进行字符串比较时,我得到 0,表示字符串相同。

什么会导致这种奇怪的行为?

这里是要求的代码

假期由以下人员组成:

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;

搜索是:

holidays = list.getHolidays();
if(holidays.BinarySearch(DateTime.Now.ToShortDateString()) > 0)

返回以下 XML:

<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>

最佳答案

我相信这与字符串的格式有关。您的列表按日、月、年排序,这是不正确的。

你需要像这样格式化你的字符串:

年/月/日

然后对列表进行排序,您的搜索应该有效。

如果这些是日期(如 DateTime ),那么列表会正确地自行排序,但由于它们是字符串,并且您的格式不支持基于字符串的自然属性的排序,所以您的排序顺序全乱了上。

关于c# - BinarySearch 没有预期的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/586960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com