Linq& VB.Net中的Lambda表达式

时间:2015-06-03 08:52:07

标签: vb.net linq lambda

我正在尝试在VB.NET中转换there找到的C#代码。 所以我写这个:

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表达式。

1 个答案:

答案 0 :(得分:0)

您需要一个FileInfo对象列表,但GetFiles会返回一组字符串。要获取LastWriteTime属性,您需要FileInfo对象。 select扩展方法正在为您执行此操作。尝试

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