问题描述
我确实有以下 VB.NET 代码:
Dim list = directoryQuery.Select(
Function(d) New With {
.dir = d.FullName,.acl = GetFileSystemAccessRule(d).Select(
Function(a) New With {.if = a.Reference.ToString()}
)
}
)
End Sub
有时 GetFileSystemAccessRule(d).Select
的返回值是 Return Enumerable.Empty(Of FileSystemAccessRule)()
。在这种情况下,我既不想在该 .directory
中添加 .acl
,也不想添加 list
。我想跳过它。
所以我考虑了之后删除空项目的选项。
//tried but Failed:
list = list.Where(Function(a) a.acl IsNot Enumerable.Empty(list)).ToList()
//tried but Failed:
list = list.Where(Function(a) a.acl IsNot nothing).ToList()
但不幸的是,他们都失败了。我做错了什么?
解决方法
我认为这是要走的路:
list = list.Where(Function(a) a.acl.Any())
或类似的东西(我不太精通 VB.NET 语法)。