排序列表<&的FileInfo GT;通过创建时间C# [英] Sorting a List<FileInfo> by creation date C#
问题描述
使用这个例子了MSDN:
使用System.Collections.Generic;
:使用System.IO;
命名空间CollectionTest
{
公共类ListSort
{
静态无效的主要(字串[] args)
{
名单,LT ; FileInfo的>文件=新的List<&的FileInfo GT;();
files.Add(新的FileInfo(D(1)));
files.Add(新的FileInfo(D));
files.Add(新的FileInfo(D(2)));
files.Sort(新CompareFileInfoEntries());
}
}
公共类CompareFileInfoEntries:的IComparer<&的FileInfo GT;
{
公众诠释比较(FileInfo的F1,F2的FileInfo)
{
回报率(的String.Compare(f1.Name,f2.Name));
}
}
}
将如何我比较创立之日起
F1具有这是一个FileSystemInfo.Datetime属性创造的日期,但是当我尝试这样的:
公共类CompareFileInfoEntries:的IComparer<&的FileInfo GT;
{
公众诠释比较(FileInfo的F1,F2的FileInfo)
{
回报率(DateTime.Compare(DateTime.Parse(f1.CreationTime),f2.CreationTime ));
}
}
}
我得到过载方法相匹配字符串。比较(字符串,字符串)
注意:伊夫用于在上述脚本两种方法来尝试返回创建时间。 。无论是工作过 - 他们都希望能在我的实际脚本相同
最近我得到的是:
收益率(DateTime.Compare(DateTime.Parse(f1.CreationTime.ToString()),DateTime.Parse(f2.CreationTime.ToString())));
说明
您可以简单的使用 LINQ(命名空间System.Linq的)
为
语言集成查询(LINQ,发音为链接)是,增加了本地数据查询功能,以.NET语言
块引用一个Microsoft .NET框架组件>
示例
列表<&的FileInfo GT; orderedList = files.OrderBy(X => x.CreationTime).ToList();
更多信息
- MSDN - Enumerable.OrderBy
- < A HREF =http://en.wikipedia.org/wiki/Language_integrated_query>维基百科 - 语言集成查询
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() )));
解决方案Description
You can simple use
LINQ (namespace System.Linq)
for that.Language Integrated Query (LINQ, pronounced "link") is a Microsoft .NET Framework component that adds native data querying capabilities to .NET languages
Sample
List<FileInfo> orderedList = files.OrderBy(x => x.CreationTime).ToList();
More Information
这篇关于排序列表<&的FileInfo GT;通过创建时间C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!