2015-06-03 61 views
0

我試圖在VB.NET中轉換C#代碼there。 所以我寫這篇文章:Linq&Lambda在VB.Net中的表達

Public Function GetLastFiles(Byval countFiles As integer) As List(Of FileInfo) 
    Return _ 
     Me._directory.GetFiles().Select(Function (x) x).OrderByDescending(
      Function (x) x.LastWriteTime).Take(countFiles).ToList() 
End Function 

一切工作正常,但我的問題是:我怎樣才能避免Function (x) x

這是一個lambda表達式,什麼都不做..

+3

那麼,爲什麼你不把它完全刪除呢? –

+2

只需刪除整個'.Select(Function(x)x)'? – har07

+0

@KooKiz明顯... – ZwoRmi

回答

0

你需要的FileInfo列表對象,但GetFiles返回一組字符串。爲了得到LastWriteTime屬性,你需要FileInfo對象。選擇擴展方法正在爲你做。嘗試

Me._directory.GetFiles().Select(Function(x) New FileInfo(x)) 
         .OrderByDescending(Function(x) x.LastWriteTime) 
         .Take(5) 
         .ToList() 
+0

har07和KooKiz在回答問題的意見。 – ZwoRmi

+0

讓我知道,如果這有效。你的GetFiles方法是否返回一個FileInfo對象列表? – shwetaOnStack

+0

'x'已經是'FileInfo'。所以它不起作用 – ZwoRmi