对列表进行排序按创建日期 C#
使用 MSDN 上的这个示例:
using System.Collections.Generic;
using System.IO;
namespace CollectionTest
{
public class ListSort
{
static void Main(string[] args)
{
List<FileInfo> files = new List<FileInfo>();
files.Add(new FileInfo("d(1)"));
files.Add(new FileInfo("d"));
files.Add(new FileInfo("d(2)"));
files.Sort(new CompareFileInfoEntries());
}
}
public class CompareFileInfoEntries : IComparer<FileInfo>
{
public int Compare(FileInfo f1, FileInfo f2)
{
return (string.Compare(f1.Name, f2.Name));
}
}
}
我将如何比较创建日期。
F1 有一个属性“创建”日期,它是 FileSystemInfo.Datetime,但是当我尝试这样做时:
public class CompareFileInfoEntries : IComparer<FileInfo>
{
public int Compare(FileInfo f1, FileInfo f2)
{
return (DateTime.Compare(DateTime.Parse(f1.CreationTime), f2.CreationTime));
}
}
}
我得到了 String 的重载方法匹配。比较(字符串,字符串)
注意:我在上面的脚本中使用了两种方法来尝试返回创建时间。两者都不起作用——它们在我的实际脚本中都是相同的。
我能得到的最近的是:
return (DateTime.Compare(DateTime.Parse(f1.CreationTime.ToString()), DateTime.Parse(f2.CreationTime.ToString() )));
Using this example off MSDN:
using System.Collections.Generic;
using System.IO;
namespace CollectionTest
{
public class ListSort
{
static void Main(string[] args)
{
List<FileInfo> files = new List<FileInfo>();
files.Add(new FileInfo("d(1)"));
files.Add(new FileInfo("d"));
files.Add(new FileInfo("d(2)"));
files.Sort(new CompareFileInfoEntries());
}
}
public class CompareFileInfoEntries : IComparer<FileInfo>
{
public int Compare(FileInfo f1, FileInfo f2)
{
return (string.Compare(f1.Name, f2.Name));
}
}
}
How would I compare the date of creation.
F1 has a property "creation" date which is a FileSystemInfo.Datetime, yet when I try this:
public class CompareFileInfoEntries : IComparer<FileInfo>
{
public int Compare(FileInfo f1, FileInfo f2)
{
return (DateTime.Compare(DateTime.Parse(f1.CreationTime), f2.CreationTime));
}
}
}
I get overload method matches for String. compare(string,string)
Note: Ive used two methods in the above script to attempt returning the creation time. Neither have worked - they would both be the same in my actual script.
CLosest I can get is:
return (DateTime.Compare(DateTime.Parse(f1.CreationTime.ToString()), DateTime.Parse(f2.CreationTime.ToString() )));
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
描述
您可以简单地使用
LINQ(命名空间System.Linq)
来实现这一点。示例
更多信息
Description
You can simple use
LINQ (namespace System.Linq)
for that.Sample
More Information
嗯,使用 linq 怎么样?
Umm what about using linq
此命令获取按 ASC 排序的目录文件列表
此命令获取按 DESC 排序的目录文件列表
This command get directory file list ordered by ASC
This command get directory file list ordered by DESC
试试这个:
Try this: