我想在以下情况下,lambda表达式对数据进行排序。为了在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
我获取文件的完整路径的名单像
c:\\logfiles\\01022012.txt.
我怎样才能得到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"
目前尚不清楚其中LINQ到实体这里适合 - 使用了'Directory.GetFiles()',所以这是一个内存中的数据源,让你在使用LINQ到对象。接下来,请澄清你的意思是“不工作” - 你究竟看到了什么? –
不工作意味着我得到与未应用.OrderBy相同的结果(p => Path.GetFileNameWithoutExtension(p)); 我收到数据但没有排序。 –
我怀疑你的诊断不正确,或者文件名已经排序。请提供一个简短但完整的例子,预期结果和实际结果。 –