Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 当LINQ IEnumerable的返回为空时,如何不添加到列表中?_Vb.net_Linq_Ienumerable - Fatal编程技术网

Vb.net 当LINQ IEnumerable的返回为空时,如何不添加到列表中?

Vb.net 当LINQ IEnumerable的返回为空时,如何不添加到列表中?,vb.net,linq,ienumerable,Vb.net,Linq,Ienumerable,我有以下VB.NET代码: Dim list = directoryQuery.Select( Function(d) New With { .dir = d.FullName, .acl = GetFileSystemAccessRule(d).Select( Function(a) New With {.if = a.Referenc

我有以下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)的返回是
return Enumerable.Empty(of FileSystemAccessRule)(
)。在这种情况下,我既不想将
.directory
也不想将
.acl
添加到该
列表中。我想跳过它

因此,我考虑了删除空项的选项

//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语法不是很精通)。

我认为这将是一种方式:

list = list.Where(Function(a) a.acl.Any())

或者类似的东西(我不太精通VB.NET语法)。

你能试试
list=list.Where(Function(a)a.acl不是什么)
谢谢你的回复,它没有改变列表中的任何内容。也许你可以看看这一行:如果arrRules(I).IsInherited.ToString()=False
向我表明,它没有严格使用
选项
。使用该选项,错误消息可能会引导您找到解决方案。这并没有帮助我找到问题的答案,而是修复了另一个错误。谢谢你@Andrew Mortoncan你可以试试
list=list.Where(Function(a)a.acl不是什么)
谢谢你的回复,它没有改变列表中的任何内容。也许你可以看看这一点:如果arrRules(i).IsInherited.ToString()=False告诉我它没有严格使用
选项
。使用该选项,错误消息可能会引导您找到解决方案。这并没有帮助我找到问题的答案,而是修复了另一个错误。谢谢@Andrew Mortonwoow,搜索了几个小时。使用
.Any()
它可以工作!谢谢!哇,搜寻了几个小时。使用
.Any()
它可以工作!谢谢!