[英]order by in lambda expressions
我试图在以下情况下对lambda表达式中的数据进行排序。
if (Directory.Exists(Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["ErrorLogPath"].ToString())))
{
string path = Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["ErrorLogPath"].ToString());
// a.Select(p => Path.GetFileNameWithoutExtension(p));
var a = Directory.GetFiles(path);
if (a != null)
{
Session["gvData"] = a.ToList();
BindDataToGrid();
}
}
在var
a
i获取文件的完整路径列表
c:\\logfiles\\01022012.txt.
如何根据我尝试的01022012
获得var
a
01022012
var a = Directory.GetFiles(path).OrderBy(p=>Path.GetFileNameWithoutExtension(p));
但没有工作。 我做错了什么事吗?
获得结果
"C:\\LogFiles\\01112012.txt"
"C:\\LogFiles\\08102012.txt"
"C:\\LogFiles\\14092012.txt"
"C:\\LogFiles\\15102012.txt"
"C:\\LogFiles\\17102012.txt"
"C:\\LogFiles\\19092012.txt"
预计是
"C:\\LogFiles\\14092012.txt"
"C:\\LogFiles\\19092012.txt"
"C:\\LogFiles\\08102012.txt"
"C:\\LogFiles\\15102012.txt"
"C:\\LogFiles\\17102012.txt"
"C:\\LogFiles\\01112012.txt"
var a = Directory.GetFiles(path)
.OrderBy(p => Regex.Replace(p,@"^.*\\(\d\d)(\d\d)(\d\d\d\d).*$","$3$2$1"))
订单有效但按字母顺序排列,而您需要按时间顺序排列。 诀窍是将ddMMyyyy变成yyyyMMdd(感谢正则表达式),然后按字母顺序和时间顺序变为相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.