我想在以下情況下,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)); 我收到數據但沒有排序。 –
我懷疑你的診斷不正確,或者文件名已經排序。請提供一個簡短但完整的例子,預期結果和實際結果。 –