【发布时间】:2016-08-07 07:15:22
【问题描述】:
我正在尝试按日期对列表框项目进行排序,但不确定如何执行此操作。我已经设法使用正则表达式创建了一个包含日期的字符串,但我不确定如何使用这个字符串对 listBox 进行排序。任何建议将不胜感激。请参阅下面的代码。
DirectoryInfo dir = new DirectoryInfo("../Debug/");
FileInfo[] files = dir.GetFiles("*.txt");
foreach (FileInfo file in files)
{
string dueDate = File.ReadAllText(file.Name);
Regex regex = new Regex(@"\d{2}/\d{2}/\d{4}");
Match mat = regex.Match(dueDate);
string duedate = mat.ToString();//string containing date
listBox1.Items.Add(file);
}
【问题讨论】:
-
您想从哪里读取日期?文件名还是文件内容?
-
@JonnyAppleseed 注意您在
file.Name上使用ReadAllText,因为file.Name将只返回其名称,而不是路径。所以要么是用户ReadAllText(file),要么如果你想要名字本身string dueDate = file.Name。 -
如果您为您的项目使用一个类(正如我对您的其他问题所建议的那样),您可以添加一个日期属性并在创建实例时填充它。这可以用于排序。就目前而言,您似乎在不知道自己在哪里以及想去哪里的情况下跳过问题。提示:您很可能想要切换到 ListView。
-
@RezaAghaei 字母顺序不适用于日期
标签: c# winforms visual-studio listbox