Csharp/C#教程:按创建日期C#对List 进行排序分享


按创建日期C#对List 进行排序

在MSDN上使用此示例:

using System.Collections.Generic; using System.IO; namespace CollectionTest { public class ListSort { static void Main(string[] args) { List files = new List(); 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 { public int Compare(FileInfo f1, FileInfo f2) { return (string.Compare(f1.Name, f2.Name)); } } } 

我如何比较创建日期。

F1有一个属性“创建”日期,这是一个FileSystemInfo.Datetime,但是当我尝试这个时:

  public class CompareFileInfoEntries : IComparer { public int Compare(FileInfo f1, FileInfo f2) { return (DateTime.Compare(DateTime.Parse(f1.CreationTime), f2.CreationTime)); } } } 

我得到String. compare(string,string)重载方法匹配String. compare(string,string) String. compare(string,string)注意:我在上面的脚本中使用了两种方法来尝试返回创建时间。 两者都没有奏效 – 它们在我的实际剧本中都是相同的。

我能得到的最好的是:

 return (DateTime.Compare(DateTime.Parse(f1.CreationTime.ToString()), DateTime.Parse(f2.CreationTime.ToString() ))); 

描述

您可以简单地使用LINQ (namespace System.Linq)

语言集成查询(LINQ,发音为“link”)是一个Microsoft .NET Framework组件,它为.NET语言添加了本机数据查询function

样品

 List orderedList = files.OrderBy(x => x.CreationTime).ToList(); 

更多信息

嗯,使用linq怎么样?

 files.OrderBy(f=>f.CreationTime) 

 Dim filePath as string = "c:\" 

此命令获取ASC排序的目录文件列表

 Dim orderedFiles = New System.IO.DirectoryInfo(filePath).GetFiles("*.xml") .OrderBy(Function(x) x.CreationTime) 

此命令获取DESC排序的目录文件列表

 Dim orderedFiles = New System.IO.DirectoryInfo(filePath).GetFiles("*.xml") .OrderByDescending(Function(x) x.CreationTime) 

试试这个:

上述就是C#学习教程:按创建日期C#对List 进行排序分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)

 public class CompareFileInfoEntries : IComparer { public int Compare(FileInfo f1, FileInfo f2) { return (string.Compare(f1.CreationTime.ToString(), f2.CreationTime.ToString())); } } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/cdevelopment/1007597.html

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐