排序列表<&的FileInfo GT;通过创建时间C# [英] Sorting a List<FileInfo> by creation date C#

查看:126
本文介绍了排序列表<&的FileInfo GT;通过创建时间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语言




示例



 列表<&的FileInfo GT; orderedList = files.OrderBy(X => x.CreationTime).ToList(); 



更多信息




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

这篇关于排序列表&LT;&的FileInfo GT;通过创建时间C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆